我无法使用Docker-compose为Postgres设置密码。Postgres加载时没有密码,并且使用默认用户名"postgres",下面的环境变量似乎都不适用。下面是我的docker-compose. yml文件的数据库服务:(第三版)
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"
注意我也尝试过使用"-POSTGRES_USER =",但没有成功
此外,我删除了所有旧的容器/卷。
你知道吗?
5条答案
按热度按时间1mrurvl11#
问题应该出在附加的卷上。当你的容器启动时,它会添加你给予它的凭据,但随后卷将被附加,这将导致此信息被重写。
有关详细信息,请访问https://github.com/docker-library/postgres/issues/203#issuecomment-255200501。
4dbbbstv2#
主要原因是在环境部分使用':'而不是“=”。理想情况下,它应该如下所示:
os8fio9y3#
您的配置对我来说工作正常。我怀疑您没有使用完整的凭据集,其中包括用户名、密码 * 和数据库名称 *。如果我以
docker-compose.yaml
为例,不加修改地运行它,我可以使用用户名user
和密码pass
连接到数据库db
,如下所示:ndh0cuux4#
有同样的问题。两周都解决不了。几乎读了所有相关的东西。
并且在我在本地机器上完成了所有与PosgreSQL服务器相关的进程之后,一切都很顺利。
svdrlsy45#
启动postgres示例:-
Docker运行--名称postgres-0 -e POSTGRES_密码=我的密码-p 5433:5433 -d postgres
现在我们可以通过以下命令检查Docker所有正在运行的容器:-
多克PS