Postgresql через Docker - postgres не запускается автоматически - PullRequest
0 голосов
/ 05 декабря 2018

Основная проблема в том, что я не могу запустить postgresql даже на vm с ошибкой:

root@a2c8a58d4e0e:/# psql -h localhost -U psqluser -W
Password for user psqluser:
psql: could not connect to server: Connection refused
    Is the server running on host "localhost" (127.0.0.1) and accepting
    TCP/IP connections on port 5432?
could not connect to server: Cannot assign requested address
    Is the server running on host "localhost" (::1) and accepting
    TCP/IP connections on port 5432?

Для этой цели я запускаю следующие команды внутри ВМ:

pg_createcluster 9.6 main --start
/etc/init.d/postgresql start

И затемправильно работает на ВМ.Но это вручную.

Я настроил все по официальным документам репо докера.

Это мой файл компоновки докера:

version: "3.3"

services:
  postgresql:
    build:
      context: .
      dockerfile: postgresql
    container_name: Postgres
    restart: always
    ports:
    - "5432:5432"
    environment:
      POSTGRES_DB: 'psqldb'
      POSTGRES_USER: 'psqluser'
      POSTGRES_PASSWORD: 'temp123'
    volumes:
    - /home/VOLUMES/DB/Postgresql:/var/lib/postgresql

Я сделал наследование от исходного репо, как хочузапускать сервис postgresql автоматически.В противном случае он не работает.

postgresql file:

FROM postgres:9.6.11
RUN pg_createcluster 9.6 main --start
RUN /etc/init.d/postgresql start

Он также не запускает Postgres.Только вручную внутри ВМ.

Что не так?

1 Ответ

0 голосов
/ 05 декабря 2018

В docker compose порты по умолчанию не отображаются на хосте.https://docs.docker.com/compose/compose-file/

ports является виртуальным в сети создания докеров.Если вы хотите выставить их на хост-компьютер, вы можете использовать опцию expose вместо ports.

В качестве альтернативы, вы также можете запустить docker-compose run с флагом --service-ports, который автоматически выставитпорты для хоста при работе.

docker-compose run --service-ports postgresql ( см. документ )

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