簡體   English   中英

Docker-compose postgresql密碼身份驗證失敗

[英]Docker-compose postgresql password authentication failed

我正在嘗試使用消耗Postgres數據庫的Web服務進行安裝。 設置應該很簡單,但出現錯誤。 因此,我首先要確保的是我設置的數據庫實際上已經存在並且正在運行。

為了測試這一點,我將“ consumer”或“ client”替換為高山交互式外殼,如下所示:

version: '3'
services:

  db:
    image: postgres:10.1-alpine
    container_name: db
    expose:
      - 5432
    volumes:
      - "dbdata:/var/lib/postgresql/data"
    environment:
      - POSTGES_USER=user
      - POSTGRES_PASSWORD=pass
      - POSTGRES_DB=db

  web:
    image: alpine:latest
    stdin_open: true
    tty: true
    entrypoint: /bin/sh
    depends_on:
      - db

volumes:
  dbdata:

然后,我運行以下命令進入交互式shell:

docker-compose run web

和以下命令進入數據庫:

apk --update add postgresql-client && rm -rf /var/cache/apk/*

psql -h db -U user db

我從postgresql得到一個明確的拒絕:

psql: FATAL:  password authentication failed for user "user"

我嘗試的每個用戶名/密碼/數據庫名稱組合都出現相同的錯誤消息。 沒有太大的幫助。

我在這里做錯了什么?

您的docker-compose文件中有一個錯字。 您在這里拼寫了POSTGRES

POSTGES_USER=user

這意味着未創建user user。 如果我糾正了錯字,那么我有:

version: '3'
services:

  db:
    image: postgres:10.1-alpine
    expose:
      - 5432
    volumes:
      - "dbdata:/var/lib/postgresql/data"
    environment:
      - POSTGRES_USER=user
      - POSTGRES_PASSWORD=pass
      - POSTGRES_DB=db

  web:
    image: alpine:latest
    stdin_open: true
    tty: true
    entrypoint: /bin/sh
    depends_on:
      - db

volumes:
  dbdata:

啟動環境:

docker-compose up -d

附加到包含的web並安裝postgresql客戶端:

$ docker attach project_web_1
/ # apk add --update postgresql-client

然后,我可以毫無問題地連接:

/ # psql -h db -U user db
Password for user user:
psql (11.2, server 10.1)
Type "help" for help.

db=#

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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