我试图在docker-compose中提高服务以使用postgres,我可以正确地提高容器,问题是它不允许我使用我在环境变量中设置的密码进行身份验证>
这是我的docker-compose服务:
version: "3"
services:
api:
build:
context: .
dockerfile: docker/nodejs/Dockerfile
ports:
- "3000:3000"
volumes:
- .:/app
links:
- postgresql
postgresql:
image: postgres:11-alpine
restart: always
environment:
POSTGRES_PASSWORD: 00000000
volumes:
- ~/docker/postgresql:/var/lib/postgresql/data
ports:
- "5432:5432"
这里可能是什么问题?我试图进入pgadmin。在控制台中显示错误:
password authentication failed for user "postgres"
Password does not match for user "postgres".
答案 0 :(得分:1)
如果数据库(在var / lib / postgresql / data文件夹为空时),则在第一次初始化时设置Postgres密码。由于您之前可能使用不同的密码运行了docker-compose,因此新密码不会生效。 要解决此问题,请在主机中删除该卷,并在下次运行docker-compose时让docker-compose自动重新创建它。请注意,删除该卷将删除PostgreSQL
中存储的所有数据。答案 1 :(得分:0)
这可能与您的卷有关。尝试修剪卷,然后再次启动容器。确保在修剪它们之前不需要它们!
查看现有的卷
docker volume ls
然后清除它们
docker volume prune
答案 2 :(得分:0)
POSTGRES_PASSWORD 失败的另一种方法是设置一个包含禁止字符的密码。您不会收到任何警告,但您将无法使用此密码登录。
答案 3 :(得分:-1)
如果您不是第一次运行它,则可以更改它。 您可以手动编辑pg_hba.conf文件并设置信任授权类型