Django не может подключиться к postgres при подключении - PullRequest
1 голос
/ 13 апреля 2019

Я продолжаю пытаться подключить свой контейнер django к контейнеру postgres, и он просто не хочет подключаться.Мой dockerfile для моего проекта Django

FROM python:3.6
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/
RUN python catconstruct/manage.py migrate

и мой docker-compose:

version: "3"

services:
  db:
    image: postgres
    hostname: 'db'
    expose:
      - "5432"
    ports:
      - "5432:5432"
  kittenkube:
    build: .
    command: python catconstruct/manage.py runserver 0.0.0.0:80
    restart: on-failure
    volumes:
      - .:/code
    environment:
       VIRTUAL_HOST: kk.example.org
       LETSENCRYPT_HOST: kk.example.org
       LETSENCRYPT_EMAIL: kk@example.org
    expose:
      - 80
    depends_on:
      - db
    healthcheck:
        test: ["CMD", "curl", "-f", "http://localhost:5432"]
        interval: 30s
        timeout: 10s
        retries: 5

networks:
  default:
    external:
      name: nginx-proxy

Кажется, что Postgres работает нормально, так как я могу вызвать docker-compose up db и затем войти вPSQL просто отлично.Я добавил параметры hostname, expose и ports в попытке исправить это, каждый другой пример в сети, похоже, просто использует параметр image.

При попытке устранения неполадок я в основном вызываю docker-compose up -d db (дляубедитесь, что база данных запущена и работает), а затем вызовите docker-compose up --build -d kittenkube, который затем выдает ошибку при переносе с ошибкой

django.db.utils.OperationalError: could not translate host name "db" to address: Name or service not known 

Вот мои настройки базы данных из settings.py:

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

Я подозреваю, что моя сеть - это то, что разрушает все, но я не могу найти правильные ключевые слова для поиска того, что я не понимаю.

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