簡體   English   中英

連接到從docker-compose yaml生成的postgres數據庫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM