Django в docker compose не видит posgresql
У меня проблема с моим django + postgresql docker compose.
docker-compose.yml:
version: '3.8'
services:
db:
image: postgres:12.0-alpine
volumes:
- postgres_data:/var/lib/postgresql/data/
env_file:
- ./.env
web:
build: .
command: python MoreEnergy/manage.py runserver 0.0.0.0:8000
volumes:
- ./MoreEnergy/:/MoreEnergy/
ports:
- 8000:8000
env_file:
- ./.env
depends_on:
- db
volumes:
postgres_data:
Dockerfile:
FROM python:3.9-alpine
WORKDIR /app
# set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# install psycopg2 dependencies
RUN apk update \
&& apk add postgresql-dev gcc python3-dev musl-dev
# install dependencies
COPY requirements.txt /app/requirements.txt
RUN pip install --upgrade pip
RUN pip install --no-cache-dir -r requirements.txt
# copy project
COPY . .
проверка контейнера db:
(shell) $ docker compose exec db psql --username=dmitriy --dbname=more_energy_db
psql (12.0)
Type "help" for help.
more_energy_db=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
----------------+---------+----------+------------+------------+---------------------
more_energy_db | dmitriy | UTF8 | en_US.utf8 | en_US.utf8 |
postgres | dmitriy | UTF8 | en_US.utf8 | en_US.utf8 |
template0 | dmitriy | UTF8 | en_US.utf8 | en_US.utf8 | =c/dmitriy +
| | | | | dmitriy=CTc/dmitriy
template1 | dmitriy | UTF8 | en_US.utf8 | en_US.utf8 | =c/dmitriy +
| | | | | dmitriy=CTc/dmitriy
(4 rows)
more_energy_db=#
error:
django.db.utils.OperationalError: could not connect to server: Connection refused
Is the server running on host "127.0.0.1" and accepting
TCP/IP connections on port 5432?
Как вы можете видеть, db контейнер работает правильно, но web контейнер не видит базу данных. В моем .env файле есть все необходимые переменные для работы контейнеров. Что мне делать?