Я хотел бы иметь приложение python flask, работающее с базой данных postgresql (psycopg2). Итак, я сделал этот файл для создания докеров:
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
в «веб-контейнере».
Любые идеи ?
Спасибо за ответы и хорошего дня.