Я продолжаю пытаться подключить свой контейнер 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,
}
}
Я подозреваю, что моя сеть - это то, что разрушает все, но я не могу найти правильные ключевые слова для поиска того, что я не понимаю.