Django Работает ли сервер на хосте "localhost" (127.0.0.1) и принимает web-1 | TCP/IP соединения на порт 5432?
Я пытаюсь докеризировать свой проект Django. У меня есть следующие конфигурационные файлы:
Dockerfile:
FROM python:3.9-bullseye
WORKDIR /app
ENV PYTHONUNBUFFERED=1
COPY csgo .
RUN apt-get update -y \
&& apt-get upgrade -y pip \
&& pip install --upgrade pip \
&& pip install -r requirements.txt
CMD ["python", "manage.py", "runserver", "127.0.0.1:8000"]
Мой docker-compose.yml выглядит следующим образом:
version: '3'
services:
web:
build:
context: .
dockerfile: Dockerfile
env_file:
- csgo.env
volumes:
- .:/code
ports:
- 8000:8000
depends_on:
- db
db:
image: postgres:13
restart: always
ports:
- 5432:5432
env_file:
- csgo.env
environment:
- POSTGRES_PASSWORD=postgres
- DB_NAME=postgres
- DB_USER=postgres
- DB_PASSWORD=postgres
- DB_HOST=localhost
volumes:
- ./db/psql-init/db.sql:/docker-entrypoint-initdb.d/db.sql
- postgres_data:/var/lib/postgresql/data/
volumes:
postgres_data:
Когда я пытаюсь docker-compose up
я получаю эту ошибку:
django.db.utils.OperationalError: could not connect to server: Connection refused
csgo-web-1 | Is the server running on host "localhost" (127.0.0.1) and accepting
csgo-web-1 | TCP/IP connections on port 5432?
csgo-web-1 | could not connect to server: Cannot assign requested address
csgo-web-1 | Is the server running on host "localhost" (::1) and accepting
csgo-web-1 | TCP/IP connections on port 5432?
В чем может быть проблема? Можете ли вы объяснить, что означает Работает ли сервер на хосте "localhost" и почему он не принимает соединение на порт 5432?
Доступные порты:
com.docke 14554 user 149u IPv6 0xd0180dc2abc35a25 0t0 TCP *:5432 (LISTEN)