HarisNvr
@HarisNvr
Начинающий кодер Python

Подключение к Postgre внутри Docker?

Читал тред: Как подключить Python к Postgresql внутри Docker-а? - не помогло.

Проблема такая:

Есть скрипт питона, который подключается к локальной Postgre БД. При запуске контейнера с БД отдельно и скрипта через PyCharm - всё работает как надо. Но стоит попытаться запустить их вместе через compose - контейнер с питоном крашится:

2024-08-03 22:17:01 sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: Connection refused
2024-08-03 22:17:01     Is the server running on that host and accepting TCP/IP connections?
2024-08-03 22:17:01 connection to server at "localhost" (127.0.0.1), port 5432 failed: Connection refused
2024-08-03 22:17:01     Is the server running on that host and accepting TCP/IP connections?


Compose файл:

volumes:
  postgres_data:

services:
  postgres:
    image: postgres:13.3
    env_file: .env
    ports:
      - "5432:5432"
    volumes:
      - postgres_data:/var/lib/postgresql/data

  backend:
    build: ./bot_backend/
    env_file: .env
    depends_on:
      - postgres


Dockerfile питона:

FROM python:3.9

WORKDIR /bot_backend

COPY requirements.txt .

RUN pip install -r requirements.txt --no-cache-dir

COPY . .

CMD ["python3", "bot_main.py"]


Причём даже после краша питоновского контейнера - контейнер с Postgre продолжает работу и к нему можно спокойно подключится через PyCharm. Всё работает как надо.
  • Вопрос задан
  • 164 просмотра
Решения вопроса 1
HarisNvr
@HarisNvr Автор вопроса
Начинающий кодер Python
В .env файле указал

DB_HOST=postgres

И всё заработало!
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы