Не возможно подключится к БД
Есть 2 контейнера. Первый - база данных ( PostgreSQL ), второй - приложение на python. Использую sqlalchemy.
URL SQLAlchemy: postgresql+asyncpg://{USER}:{PASSWORD}@{SERVER}:{PORT}/{DB}
Движок: engine = create_async_engine(url=config.DATABASE_URL)
Docker-compose:
networks:
network:
services:
database:
image: postgres:17.0-alpine3.20
restart: always
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
interval: 10s
retries: 5
start_period: 10s
timeout: 5s
ports:
- ${POSTGRES_PORT}:${POSTGRES_PORT}
expose:
- "${POSTGRES_PORT}"
volumes:
- database:${POSTGRES_DATA}
env_file:
- .env
environment:
- PGDATA=${POSTGRES_DATA}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD?Variable not set}
- POSTGRES_USER=${POSTGRES_USER?Variable not set}
- POSTGRES_DB=${POSTGRES_DB?Variable not set}
command: -p ${POSTGRES_PORT}
deploy:
resources:
limits:
cpus: '1'
memory: 128M
networks:
- network
bot:
env_file:
- .env
build:
context: ./bot
depends_on:
- database
deploy:
resources:
limits:
cpus: '1'
memory: 128M
networks:
- network
volumes:
database:
Ошибка:
bot-1 | File "/usr/local/lib/python3.12/asyncio/base_events.py", line 1129, in create_connection
bot-1 | raise OSError('Multiple exceptions: {}'.format(
bot-1 | OSError: Multiple exceptions: [Errno 111] Connect call failed ('::1', 9999, 0, 0), [Errno 111] Connect call failed ('127.0.0.1', 9999)
Лог Postgres:
database-1 |
database-1 | PostgreSQL Database directory appears to contain a database; Skipping initialization
database-1 |
database-1 | 2024-11-22 13:33:10.995 UTC [1] LOG: starting PostgreSQL 17.0 on x86_64-pc-linux-musl, compiled by gcc (Alpine 13.2.1_git20240309) 13.2.1 20240309, 64-bit
database-1 | 2024-11-22 13:33:10.995 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 9999
database-1 | 2024-11-22 13:33:10.995 UTC [1] LOG: listening on IPv6 address "::", port 9999
database-1 | 2024-11-22 13:33:10.999 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.9999"
database-1 | 2024-11-22 13:33:11.009 UTC [28] LOG: database system was shut down at 2024-11-22 13:33:10 UTC
database-1 | 2024-11-22 13:33:11.017 UTC [1] LOG: database system is ready to accept connections
Ответы (1 шт):
Автор решения: Guzya
→ Ссылка
Пропишите в подключении к бд не 127.0.0.1 ,а название контейнера с бд (если правильно помню).