这是我的码头工人组成
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)使用环境变量
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)
由于没有数据被填充,它们似乎都不起作用。一切都在本地工作,所以我非常有信心,我的代码是准确的。所有变量(如user等)都已检查并重新检查,并且它们在本地工作。非常感谢您的帮助。一切都在同一网络上。