pgAdmin Docker 错误:“用户名或密码不正确”

gal*_*jis 13 docker pgadmin-4

有一些简单的 docker-compose.yml 文件配置,但我不知道为什么我不能使用pgadmin4@pgadmin.org作为电子邮件和admin作为密码登录 pgAdmin。是否需要更多配置或者我使用了错误的凭据?

version: "3.7"

services:
    db:
        image: postgres:13.1
        restart: unless-stopped
        env_file:
            - ./.env
        ports:
            - 5432:5432
        volumes:
            - db-data:/var/lib/postgresql/data
            - ./init-db.sh:/docker-entrypoint-initdb.d/init-database.sh
        networks:
            - appNetwork

    pgAdmin:
        container_name: pgAdmin
        # restart: unless-stopped
        image: dpage/pgadmin4:4.29
        environment:
            PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:-pgadmin4@pgadmin.org}
            PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-admin}
            PGADMIN_LISTEN_PORT: 5050
        volumes:
            - pgadmin:/root/.pgadmin
        ports:
            - "5050:5050"
        depends_on:
            -   db
        networks:
            - appNetwork

volumes:
    db-data:
    pgadmin:

networks:
    appNetwork:
        driver: bridge
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Pie*_* B. 19

您定义PGADMIN_DEFAULT_EMAILPGADMIN_DEFAULT_PASSWORD使用持久卷pgadmin。也许您之前使用不同的电子邮件/密码创建了一个实例,该实例已在pgadmin卷中保留,并且不会被新定义的变量覆盖。

您可以尝试使用以下命令删除堆栈容器和卷:

# WARNING: this will delete all containers and volumes
# including pg_data volume and pgadmin volume
# make sure to make a backup if needed
docker-compose down -v 
Run Code Online (Sandbox Code Playgroud)

或者,您可以停止 pgAdmin 容器并专门删除该pgadmin卷:

docker-compose rm -s pgAdmin

# Replace project_name by your Docker Compose project name
# Use docker volume ls to show all volumes and choose the proper one
docker volume rm project_name_pgadmin
Run Code Online (Sandbox Code Playgroud)

然后重新创建pgAdmin容器和卷(如果需要的话还有其他组件):

docker-compose up -d
Run Code Online (Sandbox Code Playgroud)