У меня есть скрипт, написанный на Python, который достает из Postgres данные. На локальной машине все работает, в Docker ситуация иная. Не могу подключить Python к Postgres внутри Docker-контейнера. Использую docker-compose в данном случае, под параметр хоста беру ip контейнера с базой данных. Все равно ничего не видит и скрипт не подключается. Помогите мне пожалуйста в данном вопросе
[ Фрагмент кода с подключением к БД в Python ]
try:
conn = psycopg2.connect(
database = "users",
user = "postgres",
password ="postgres",
port = "5432",
host = "172.22.0.2"
)
print("[INFO] Подключение с БД установлено")
cur = conn.cursor()
except:
print("[INFO] Нет соединения с БД")
[ Сама ошибка, вылетающая при подключении к БД ]
[INFO] Нет соединения с БД
[INFO] Не удалось узнать кол-во записей в БД
var = cur.fetchall()
NameError: name 'cur' is not defined. Did you mean: 'chr'?
[ Dockerfile ]
FROM python:latest
WORKDIR /script/src
COPY ./ /script
COPY requirements.txt /script
COPY src /script/src
RUN apt-get update && apt-get install -y python3-pip
RUN pip install -r /script/requirements.txt
RUN chmod +x /script/src/script.py
CMD ["python3", "/script/src/script.py"]
[ docker-compose.yml ]
version: '3.8'
services:
script:
build: ./script/
command: /script/src/script.py
container_name: script-mtg
depends_on:
- db
networks:
- net
db:
image: postgres:latest
container_name: dbpg-mtg
restart: always
volumes:
- ./ .database/postgres/data:/var/lib/postgresql/data
ports:
- "5432"
networks:
- net
networks:
net:
driver: bridge