Я хотел бы иметь приложение python flask, которое работает с базой данных postgresql (psycopg2). Итак, я сделал этот docker -компонентный файл:
version: "3"
services:
web:
depends_on:
- database
container_name: web
build:
context: "."
dockerfile: "docker/Dockerfile.web"
ports:
- 5000:5000
volumes:
- database:/var/run/postgresql
database:
container_name: database
environment:
POSTGRES_PASSWORD: "password"
POSTGRES_USER: "user"
POSTGRES_DB: "products"
image: postgres
expose:
- 5432
volumes:
- database:/var/run/postgresql
volumes:
database:
В моем app.py я пытаюсь подключиться к postgres следующим образом:
conn = psycopg2.connect(database="products", user="user", password="password", host="database", port="5432")
Когда я запускаю docker-compose up
Я получаю следующую ошибку:
" Сервер работает на хосте" база данных "(172.21.0.2) и принимает соединения TCP / IP через порт 5432? "
Не знаю Не знаю, где я ошибся здесь.
- Контейнерная "база данных" предоставляет свой порт 5432.
- Оба контейнера находятся в одной сети, которая называется "web_app_default".
- Файл сокета существует в каталоге
/var/run/postgresql
в контейнере "web".
Есть идеи?
Спасибо за ответы и хорошего дня.