Docker 中的 Postgresql 如何工作? psql: FATAL: 用户 xy 的密码验证失败

How does Postgresql inside Docker work? psql: FATAL: password authentication failed for user xy

我用 .yml 创建了我的应用程序

services:

  db:
    image: postgres:11-alpine
    environment:
      POSTGRES_DB: wiki
      POSTGRES_PASSWORD: quantoxrocks
      POSTGRES_USER: wikijs
    logging:
      driver: "none"
    restart: unless-stopped
    volumes:
      - db-data:/var/lib/postgresql/data

  wiki:
    image: ghcr.io/requarks/wiki:2
    depends_on:
      - db
    environment:
      DB_TYPE: postgres
      DB_HOST: db
      DB_PORT: 5432
      DB_USER: wikijs
      DB_PASS: quantoxrocks
      DB_NAME: wiki
    restart: unless-stopped
    ports:
      - "3000:3000"
    
  webserver:
    image: nginx:alpine
    restart: unless-stopped
    tty: true
    ports:
       - "443:443"
       - "80:80"            
    volumes:
      - ./nginx/conf.d:/etc/nginx/conf.d
      - ./ssl:/etc/nginx/ssl        
volumes:
  db-data:

我登录了我的数据库容器并想要创建数据库。我已经尝试了至少 10 次,我确定密码来自上面的 docker-compose.yml 文件。没用。

docker exec -it wiki_db_1 sh

下一个

psql -h wiki_db_1 -U wikijs
Password for user wikijs: 
psql: FATAL:  password authentication failed for user "wikijs"

为什么?我如何查看更多日志?

Postgres 的环境变量在容器启动时没有数据库存在的情况下使用。

您有一个 /var/lib/postgresql/data 的卷映射,并且您可能已经有一个数据库,它是使用与环境变量值不同的值创建的。

如果现有数据库中没有任何重要数据,您可以删除该卷,Postgres 将使用正确的 username/password.

创建一个新数据库