Docker-compose: приложение не может подключиться к контейнеру Postgres - PullRequest
0 голосов
/ 08 марта 2019

Мне не удается подключить мое приложение Phoenix к контейнеру Postgres при использовании docker-compose up.

Мой docker-compose.yml:

version: '3.5'

services:
  web:
    image: "solaris_cards:latest"
    ports:
      - "80:4000"
    env_file:
      - config/docker.env
    depends_on:
      - db

  db:
    image: postgres:10-alpine
    volumes:
      - "/var/lib/postgresql/data/pgdata/var/lib/postgresql/data"
    ports:
      - "5432:5432"
    env_file:
      - config/docker.env

Приложение работает ввеб-контейнер жалуется, что отсутствует соединение с контейнером Postgres:

[error] Postgrex.Protocol (#PID<0.2134.0>) failed to connect: ** (DBConnection.ConnectionError) tcp connect (db:5432): non-existing domain - :nxdomain

Мои переменные env:

DATABASE_HOST=db
DATABASE_USER=postgres
DATABASE_PASS=postgres

Я попытался сначала запустить контейнер Postgres отдельно, а затем запуститьвеб-контейнер, но все еще имеет ту же проблему.

Если я изменю хост базы данных на 0.0.0.0 (что показывает Postgres при работе), то, похоже, он соединяется, но соединение отклоняется, а не обнаруживается.

Однако докер должен иметь возможность переводить имя хоста, без ввода вручную ip.

1 Ответ

0 голосов
/ 11 марта 2019

Postgres выходил из-за того, что его том уже содержал данные.

Эта проблема была решена путем очистки каталога с помощью:

docker-compose down -v
...