Не могу подключаться к PosgreSQL в Docker контейнере через python

Рейтинг: 0Ответов: 0Опубликовано: 17.08.2023

Всем привет. Мне необходимо разобраться с стеком Flask, PosgreSQL и Docker, а конкретно, как подключится к docker контейнеру из своего кода.

У меня есть 2 файла:

docker-compose.yml

services:
  db:
      image: postgres:13-alpine
      volumes:
        - ./pg_db:/var/lib/postgresql/data/
      environment:
        - POSTGRES_USER=az_user
        - POSTGRES_PASSWORD=az_psw
        - POSTGRES_DB=az_dbname
  pgadmin:
    image: dpage/pgadmin4
    depends_on:
      - db
    environment:
      - PGADMIN_DEFAULT_EMAIL=root@azzrael.ru
      - PGADMIN_DEFAULT_PASSWORD=azzrael_code_yt
      - PGADMIN_LISTEN_ADDRESS=0.0.0.0 
      - PGADMIN_LISTEN_PORT=5555

main.py

import psycopg2

conn = psycopg2.connect("postgresql://az_user:az_psw@db:5432/az_dbname")
print("Great!")
conn.close()

Сначала я выполняю команду docker-compose up -d - все успешно билдится и запускается. Могу зайти по 5555 порту и проверить в панели pgAdmin, но проблемы начинаются, когда я пытаюсь запустить мой python код. Запускаю я его отдельно от docker-compose.yml командой в консоли python main.py, код крашится с ошибкой psycopg2.OperationalError: could not translate host name "db" to address: Unknown host

Эта проблема очень распатронена, но четкого ответа я не нашел. Я добавлял в services->db следующую строку POSTGRES_HOST_AUTH_METHOD=trust, добавлял container_name: db, менял host на localhost - все безуспешно.

Буду благодарен за любую помощь, так как второй день бьюсь с этой проблемой.

Ответы

Ответов пока нет.