Хост "localhost" (::1) и принимает TCP/IP соединения на порт 5432?
Я пытаюсь создать веб-сайт Django, который подключается к "стандартной" базе данных PostgreSQL, и все это в Docker. Обратите внимание, я пытаюсь создать db внутри образа postgres.
После выполнения команды docker-compose up --remove-orphans
возникает ошибка в заголовке. Могу ли я сделать что-нибудь, чтобы исправить это?
В настоящее время я использую следующее:
Settings.py - DATABASES
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'postgres',
'USER': 'postgres',
'PASSWORD': 'postgres',
'HOST': 'localhost',
'PORT': 5432,
}
}
Dockerfile
FROM python:3.7-slim as production
ENV PYTHONUNBEFFERED=1
WORKDIR /app/
RUN apt-get update && \
apt-get install -y \
bash \
build-essential \
gcc \
libffi-dev \
musl-dev \
openssl \
postgresql \
libpq-dev
COPY requirements/prod.txt ./requirements/prod.txt
RUN pip install -r ./requirements/prod.txt
COPY manage.py ./manage.py
COPY website ./website
EXPOSE 8000
FROM production as development
COPY requirements/dev.txt ./requirements/dev.txt
RUN pip install -r ./requirements/dev.txt
COPY . .
docker-compose.yml
version: "3.7"
x-service-volumes: &service-volumes
- ./:/app/:rw,cached
x-database-variables: &database-variables
POSTGRES_DB: postgres
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
x-app-variables: &app-variables
<<: *database-variables
POSTGRES_HOST: postgres
services:
website:
image: "django_image:latest"
command: python manage.py runserver 0.0.0.0:8000
volumes: *service-volumes
environment: *app-variables
depends_on:
- db_migrate
ports:
- "8000:8000"
db_migrate:
image: "django_image:latest"
command: python manage.py migrate
volumes: *service-volumes
environment: *app-variables
depends_on:
- postgres
postgres:
image: "postgres:latest"
ports:
- "5432:5432"
environment: *database-variables
volumes:
- db-data:/var/lib/postgres
volumes:
db-data: