вот мой docker compose
version: '2.1'
services:
db:
restart: always
image: nikitph/portcastdbimage:latest
ports:
- "5432:5432"
environment:
- DEBUG = false
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
timeout: 5s
retries: 5
scraper:
build: .
restart: always
links:
- db
environment:
- DB_HOST = db
- BAR = FOO
depends_on:
db:
condition: service_healthy
command: [ "python3", "./cycloneprocess.py" ]
Теперь из того, что я почерпнул из переполнения стека, есть две опции для доступа к этой базе данных из другого контейнера
a) использовать переменную env
self.connection = psycopg2.connect(host=os.environ["DB_HOST"], user=username, password=password, dbname=database)
print (os.environ ["DB_HOST"]) дает мне 'db'.я не знаю, ожидаемо ли это
b) напрямую использовать 'db'
self.connection = psycopg2.connect(host='db', user=username, password=password, dbname=database)
ни один из них, похоже, не работает, так как данные не заполняются.все работает локально, поэтому я уверен, что мой код точен. Все переменные, такие как пользователь и т. д., были проверены и перепроверены, и они работают локально.Буду очень признателен за любую помощь.Между прочим, все в одной сети.