Подключение к базе данных postgres, созданной из docker-compose yaml - PullRequest
0 голосов
/ 24 февраля 2019

РЕДАКТИРОВАТЬ: файл docker-compose создает экземпляр prisma просто отлично, и это может общаться с базой данных, но я также хочу иметь возможность подключиться к базе данных с моего Mac в командной строке, как если бы это был локальныйбаза данных.

Я использую docker-compose для создания prisma api, подключенного к контейнеру postgres.Это прекрасно работает, но я не могу получить доступ к экземпляру postgres без предварительного входа в контейнер, хотя я думал, что настроил переадресацию портов.Это мой docker-compose yaml:

version: '3'
services:
  prisma:
    image: prismagraphql/prisma:1.13
    restart: always
    ports:
    - "4040:4040"
    environment:
      PRISMA_CONFIG: |
        port: 4040
        databases:
          default:
            connector: postgres
            host: postgres
            port: 5432
            user: prisma
            password: prisma
            migrations: true
  postgres:
    image: postgres:latest
    restart: always
    ports:
      - "5432:5432"
    environment:
      POSTGRES_USER: prisma
      POSTGRES_PASSWORD: prisma
    volumes:
      - postgres:/var/lib/postgresql/data
volumes:
  postgres:

Когда я смотрю на docker ps, он имеет 0.0.0.0:5432->5432/tcp в столбце портов для контейнера postgres, но когда я пробую любой из

psql -h localhost -p 5432 -U prisma
psql -h 0.0.0.0 -p 5432 -U prisma
psql -h 127.0.0.1 -p 5432 -U prisma

Я получаю ошибки, говоря, что призма не роль.Когда я пытаюсь сделать то же самое с -U postgres, я могу попасть в базу данных, но призменной базы данных не существует (но она существует в контейнере).

Я много гуглил, но убежищеНе нашел никакого решения, поэтому был бы очень рад, если бы кто-то мог объяснить, где я иду не так.Спасибо!

Ответы [ 2 ]

0 голосов
/ 24 февраля 2019

Публикация ответа, чтобы люди знали, что не стоит беспокоиться - я перезапустил свой brew-сервис postgresql, а потом он просто заработал ... странно.

0 голосов
/ 24 февраля 2019

Попробуйте добавить, в разделе «prisma», он обязательно дождется запуска базы данных:

depends_on:
      - postgres

Возможно, ваш контейнер базы данных еще не запущен, когда контейнер «prisma» пытается подключиться.

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