![](/img/trans.png)
[英]Connecting a Play! application to a postgres (with Postgis) database with Docker-compose
[英]Connecting to postgres database generated from docker-compose yaml
編輯:docker-compose文件可以很好地創建一個prisma實例,它可以與數據庫通信,但是我也希望能夠在命令行上從我的mac連接到數據庫,就好像它是本地數據庫一樣。
我正在使用docker-compose創建連接到postgres容器的pyramida api。 這可以正常工作,但是即使我認為我將設置端口轉發,也必須先進入容器才能訪問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
它在postgres容器的端口欄中有0.0.0.0:5432->5432/tcp
,但是當我嘗試任何
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
我收到錯誤消息,指出prisma不是角色。 當我使用-U postgres
嘗試相同的操作時,我可以進入數據庫,但是不存在pyramida數據庫(但是它在容器中存在)。
我做了很多谷歌搜索,但是還沒有找到任何解決方案,所以如果有人可以解釋我要去哪里錯了,我將非常高興。 謝謝!
嘗試在“ prisma”下添加,它將確保等待數據庫啟動:
depends_on:
- postgres
當“ prisma”容器嘗試連接時,您的數據庫容器可能尚未啟動。
發布答案,使人們知道不打擾-我重新啟動了postgresql的brew服務,然后它正常工作...很奇怪。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.