2017-08-30 2 views
0

Fehler Excon :: Error :: Socket (getaddrinfo: Name oder Dienst nicht bekannt (SocketError)) beim Versuch Datei über carrierwave fog- zu laden aws zu minio.Datei kann nicht über carrierwave fog-aws zu minio hochgeladen werden (docker-compose)

Docker komponieren

version: '3' 
services: 
    minio: 
    image: minio/minio 
    deploy: 
     resources: 
     limits: 
      memory: 256m 
    volumes: 
     - 'minio:/var/lib/minio' 
    environment: 
     - "MINIO_ACCESS_KEY=development" 
     - "MINIO_SECRET_KEY=development" 
    ports: 
     - "9000:9000" 
    command: server /export 
    rails: 
    build: . 
    command: bash -c 'rm -f /test/tmp/pids/server.pid && bundle && bundle exec rails s -p 3000 -b 0.0.0.0' 
    volumes: 
     - .:/test 
    ports: 
     - "3000:3000" 
    depends_on: 
     - minio 
volumes: 
    minio: 

Carrierwave initializer

CarrierWave.configure do |config| 
    config.fog_provider = 'fog/aws' 
    config.fog_credentials = { 
     provider:    'AWS', 
     aws_access_key_id:  'development', 
     aws_secret_access_key: 'development', 
     region:    'us-east-1', 
     host:     'minio', 
     endpoint:    'http://localhost:9000' 
    } 
    config.fog_directory = 'test' 
    config.fog_public  = false 
    # config.fog_attributes = { cache_control: "public, max-age=#{365.day.to_i}" } # optional, defaults to {} 
end 
+0

Arbeit zeigen sollte vielleicht dem Server zu sehen Log würde helfen, dieses Problem zu verstehen. –

+0

im Protokoll nur ein Fehler. Excon :: Fehler :: Socket (getaddrinfo: Name oder Dienst nicht bekannt (SocketError)) –

+0

Ich glaube, dass Fehler auftreten, wenn DNS nicht aufgelöst werden kann, vielleicht localhost ist nicht in diesem Kontext definiert? Sie könnten versuchen, die IP-Adresse explizit festzulegen, indem Sie den Endpunktwert "http: //127.0.0.1: 9000" verwenden. – geemus

Antwort

0

Sie Carrierwave innerhalb Docker Container an den Dienst DNS in Ihrem Fall folgende Änderung sollte

CarrierWave.configure do |config| 
    config.fog_provider = 'fog/aws' 
    config.fog_credentials = { 
     provider:    'AWS', 
     aws_access_key_id:  'development', 
     aws_secret_access_key: 'development', 
     region:    'us-east-1', 
     host:     'minio', 
     endpoint:    'http://minio:9000' 
    } 
    config.fog_directory = 'test' 
    config.fog_public  = false 
    # config.fog_attributes = { cache_control: "public, max-age=#{365.day.to_i}" } # optional, defaults to {} 
end 
Verwandte Themen