Это docker compose для django
environment:
SECRET_KEY: "KEY"
DEBUG: "True"
NAME: "NAME"
USER: "USER"
PASSWORD: "PASSWORD"
HOST: "HOST"
PORT: "5434"
depends_on:
- postgres_db
Это docker compose для postgres
postgres_db:
image: postgres
environment:
POSTGRES_HOST_AUTH_METHOD: trust
POSTGRES_USER: ss
POSTGRES_PASSWORD: ss
PGDATA: /data/ss
volumes:
- postgres:/data/postgres
ports:
- "5434:5432"
networks:
main_network:
ipv4_address: 10.10.0.4
restart: unless-stopped
Это мои данные конфигурации базы данных в настройках django.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': os.getenv('NAME'),
'USER': os.getenv('USER'),
'PASSWORD': os.getenv('PASSWORD'),
'HOST': "postgres_db",
'PORT': os.getenv('PORT')
}
}
Я не могу найти свою ошибку. Я потратил 4-5 часов, но безуспешно.
все еще я получаю эту ошибку. Сервер работает на хосте «postgres_db» (10.10.0.4) и принимает соединения TCP / IP через порт 5434? когда я пишу docker compose up
@Jarvis Да, работает нормально, я могу подключиться, если напишу 127.0.0.1 в файле настроек. Но в докере это не работает.
Почему вы добавили конфигурацию сети в Dockerfile postgres?
@Jarvis, потому что я хочу подключиться из django в докере
Разве вы не можете использовать имя контейнера докера, работающего непосредственно на локальном хосте? Почему вы указали 10.10.0.4
явно?
@Jarvis Я поменял, но опять не получилось
Давайте продолжим обсуждение в чате.
По умолчанию он обычно работает на порту «5432».
РЕШЕНИЕ
Я удалил все контейнеры, тома и изображения, после чего заработало.
Контейнер postgres работает нормально? Вы проверяли статус службы postgres в ее контейнере?