РЕДАКТИРОВАТЬ: файл 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
, я могу попасть в базу данных, но призменной базы данных не существует (но она существует в контейнере).
Я много гуглил, но убежищеНе нашел никакого решения, поэтому был бы очень рад, если бы кто-то мог объяснить, где я иду не так.Спасибо!