невозможно соединиться с контейнером postgres DB через pyscog2 в другом контейнере с помощью docker compose - PullRequest
0 голосов
/ 27 ноября 2018

вот мой 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)

ни один из них, похоже, не работает, так как данные не заполняются.все работает локально, поэтому я уверен, что мой код точен. Все переменные, такие как пользователь и т. д., были проверены и перепроверены, и они работают локально.Буду очень признателен за любую помощь.Между прочим, все в одной сети.

...