Я пытаюсь докертизировать мое приложение Django-postgres и запустить 2 команды, используя docker-compose. Мой Dockerfile:
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
Мой docker-compose.yml:
version: '3'
services:
web:
build: .
command: bash -c "python app/manage.py migrate && python app/manage.py runserver 0.0.0.0:8000"
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
db:
image: postgres
ports:
- "5432:5432"
environment:
POSTGRES_PASSWORD: password
и мои настройки .py имеют следующий код базы данных:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'postgres',
'USER': 'postgres',
'PASSWORD': 'password',
'HOST': 'db',
'PORT': '5432',
}
}
Мои БД и веб-контейнеры работают, когда я запускаю:
docker-compose run web python app/manage.py migrate
docker-compose run web python app/manage.py runserver 0.0.0.0:8000
Но когда я запускаю
docker-compose up
не получается с ошибкой:
web_1 | django.db.utils.OperationalError: could not connect to server: Connection refused
web_1 | Is the server running on host "db" (172.23.0.2) and accepting
web_1 | TCP/IP connections on port 5432?
Может кто-нибудь помочь мне найти, где я иду не так?