Докер Django - не удалось перевести имя хоста "db" в адрес: имя узла, имя сервера указано или не известно - PullRequest
1 голос
/ 09 марта 2019

Я относительно новичок в Django и Docker и слежу за руководством по созданию мини-приложения. Однако я застреваю со следующей ошибкой:

django.db.utils.OperationalError: could not translate host name "db" to address: nodename nor servname provided, or not known

Мой файл docker-compose выглядит следующим образом:

 version: '3'
 services:
  db:
     image: 'postgres'
     ports:
       - '5432'
  core:
    build:
      context: .
      dockerfile: Dockerfile
    command: python3 manage.py runserver 0.0.0.0:8000
    ports:
      - '8000:8000'
    volumes:
      - .:/code
    depends_on:
      - db
    links:
      - db:db

Мой файл settings.py содержит базу данных:

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

Я видел пост здесь и здесь однако оба не устранили проблему.

Буду признателен за руководство. Благодаря.

1 Ответ

1 голос
/ 02 июля 2019

То есть вы пытаетесь достичь БД, которая работает в одном контейнере из другого контейнера?Если да - то потенциально может помочь следующее, по крайней мере, оно помогло мне, когда у меня возникли подобные проблемы.

Попробуйте определить network config в дополнение к links в вашем composeфайл, создать сеть с некоторым именем и определить его в обеих службах.Как описано здесь , так как доки на ссылки config рекомендуют сделать это.

Что-то подобное для вашего случая:

version: '3'
 services:
  db:
     image: 'postgres'
     ports:
       - '5432'
     networks:
      some_network:
  core:
    build:
      context: .
      dockerfile: Dockerfile
    command: python3 manage.py runserver 0.0.0.0:8000
    ports:
      - '8000:8000'
    volumes:
      - .:/code
    depends_on:
      - db
    links:
      - db:db
    networks:
      some_network:
  networks:
   some_network:

Это помогло мне определить имя хоста для подключения к БД.

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