无法使用docker compose通过其他容器上的pyscog2连接到postgres DB容器

时间:2018-11-27 08:15:30

标签: python postgresql docker docker-compose psycopg2

这是我的码头工人组成

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等)都已检查并重新检查,并且它们在本地工作。非常感谢您的帮助。一切都在同一网络上。

0 个答案:

没有答案