Iss*_*sam 5 postgresql yaml docker docker-compose
我无法使用Docker-compose设置Postgres的密码。Postgres正在加载而没有密码,并且使用默认用户名“ postgres”,似乎未应用以下环境变量。以下是我的docker-compose.yml文件的数据库服务:(版本3)
db:
image: postgres
container_name: postgres
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: pass
POSTGRES_DB: db
restart: unless-stopped
volumes:
- ./postgres-data:/var/lib/postgresql/data
ports:
- "5432:5432"
Run Code Online (Sandbox Code Playgroud)
请注意,我也尝试使用了“ -POSTGRES_USER =”,但没有用
另外,我删除了所有旧的容器/卷。
任何的想法?
问题应该出在附加的卷上。当您的容器启动时,它会添加您提供给他的凭据,但随后会附加卷,这将导致此信息被重写。
有关更多信息,请查看 https://github.com/docker-library/postgres/issues/203#issuecomment-255200501。
主要原因是在环境部分使用“:”而不是“=”。理想情况下,它应该如下所示:
db:
image: postgres
container_name: postgres
environment:
- POSTGRES_USER=user
- POSTGRES_PASSWORD= pass
- POSTGRES_DB= db
restart: unless-stopped
volumes:
- ./postgres-data:/var/lib/postgresql/data
ports:
- "5432:5432"
Run Code Online (Sandbox Code Playgroud)
虽然很晚,但我希望这有助于寻找类似解决方案的人。
你的配置对我来说效果很好。我怀疑您没有使用完整的正确凭据集,其中包括用户名、密码和数据库名称。如果我采用您的示例并在不进行修改的情况下运行它,我可以使用用户名和密码docker-compose.yaml连接到数据库,db如下所示:userpass
$ psql -h localhost -U user db
Password for user user:
psql (9.5.7, server 9.6.1)
WARNING: psql major version 9.5, server major version 9.6.
Some psql features might not work.
Type "help" for help.
db=#
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5118 次 |
| 最近记录: |