Не возможно подключится к БД

Есть 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 ,а название контейнера с бд (если правильно помню).

→ Ссылка