Где мне указать Postgres в Docker, что он должен работать и принимать соединения? - PullRequest
0 голосов
/ 10 апреля 2019

Я пытаюсь докеризировать существующее приложение Rails, которое использует Postgresql 9.5 в качестве базы данных. В моем docker-compose.yml. После успешной сборки «docker-compose» я могу запустить команду «docker-compose up» и увидеть соединение, но при переходе на localhost я получаю следующую ошибку.

PG :: ConnectionBad Не удалось подключиться к серверу: нет такого файла или каталога. Сервер работает> локально и принимает подключения через сокет домена Unix> "/ var / run / postgresql / .s.PGSQL.5432"?

Вот что есть в моем docker-compose.yml

version: '2'
services:
  db:
    image: postgres:9.5
    restart: always
    volumes:
      - ./tmp/db:/var/lib/postgresql/9.5/main
    environment:
       POSTGRES_USER: username
       POSTGRES_PASSWORD: password
       POSTGRES_DB: hardware_development

  web:
    build: .
    command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
    volumes:
      - .:/myapp
    ports:
      - "3000:3000"
    depends_on:
      - db

Из того, что я видел, мне нужно сделать некоторую спецификацию где-нибудь в моем dockerfile или docker-compose.yml, но я либо не вижу изменений, либо возвращаюсь к той же самой ошибке.

Я смог использовать собственные документы Докера, чтобы использовать Docker Compose для создания нового приложения для rails с postgres, где я вижу: «Да, ты на рельсах!» страница, но теперь с моим собственным кодом я ничего не вижу. Запуск приложения за пределами Docker также показывает мне тестовую страницу, так что это не код в моем приложении rails или в среде Postgres за пределами Docker.

1 Ответ

0 голосов
/ 10 апреля 2019

Ваша запись db docker-compose не открывает никаких портов.Он должен выставить 5432. Добавьте строку портов для этого так же, как у вас для web.

Редактировать: также я не знаю, почему вы добавили restart: always в свой контейнер базы данных, но я бы не сталЯ рекомендую это для рельсов или чего угодно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...