Django, Nginx, Docker с Postgresql на AWS ElasticBeanstalk - не удалось перевести имя хоста "db" в адрес: имя или служба неизвестна - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь развернуть свое приложение Django на AWS ElasticBeanStalk.Все отлично работает с Docker compose на моем локальном компьютере.Но когда он работает на AWS, он дает мне следующее: Изображение ошибки

docker-compose.yml:

    version: '3'

services:
  db:
    image: postgres
    hostname: db
  app:
    build:
      context: .
      dockerfile: config/app/Dockerfile
    command: sh /config/on-container-start.sh
    hostname: app
    volumes:
      - ./app:/app
    expose:
      - "8000"
    depends_on:
      - db
  nginx:
    image: nginx:latest
    hostname: nginx
    ports:
      - "80:8000"
    volumes:
      - ./config/nginx:/etc/nginx/conf.d
    depends_on:
      - app

Nginx

# define group app
upstream app {
  # balancing by ip
  ip_hash;

  # define server app
  server app:8000;
}

# portal
server {
  # all requests proxies to app
  location / {
         proxy_pass http://app/;
    }

  # only respond to port 8000
  listen 8000;

  # domain localhost
  server_name localhost;
}

В settings.py:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'postgres',
        'USER': 'postgres',
        'HOST': 'db',
        'PORT': 5432,
    }
}

Любая помощь будет принята с благодарностью, Спасибо

1 Ответ

0 голосов
/ 27 февраля 2019

Вы пробовали опцию link?

Итак, ваша компоновка должна быть такой:

version: '3'

services:
  db:
    image: postgres
    hostname: db
  app:
    build:
      context: .
      dockerfile: config/app/Dockerfile
    command: sh /config/on-container-start.sh
    hostname: app
    links:
      - db
    volumes:
      - ./app:/app
    expose:
      - "8000"
    depends_on:
      - db
  nginx:
    image: nginx:latest
    hostname: nginx
    ports:
      - "80:8000"
    volumes:
      - ./config/nginx:/etc/nginx/conf.d
    depends_on:
      - app
    links:
      - app

опция depends on предназначена для запуска зависимостей перед приложением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...