无法使用Docker-compose设置Postgres的密码

h6my8fg2  于 2023-02-07  发布在  Docker
关注(0)|答案(5)|浏览(281)

我无法使用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 =",但没有成功
此外,我删除了所有旧的容器/卷。
你知道吗?

1mrurvl1

1mrurvl11#

问题应该出在附加的卷上。当你的容器启动时,它会添加你给予它的凭据,但随后卷将被附加,这将导致此信息被重写。
有关详细信息,请访问https://github.com/docker-library/postgres/issues/203#issuecomment-255200501。

4dbbbstv

4dbbbstv2#

主要原因是在环境部分使用':'而不是“=”。理想情况下,它应该如下所示:

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"
os8fio9y

os8fio9y3#

您的配置对我来说工作正常。我怀疑您没有使用完整的凭据集,其中包括用户名、密码 * 和数据库名称 *。如果我以docker-compose.yaml为例,不加修改地运行它,我可以使用用户名user和密码pass连接到数据库db,如下所示:

$ 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=#
ndh0cuux

ndh0cuux4#

有同样的问题。两周都解决不了。几乎读了所有相关的东西。
并且在我在本地机器上完成了所有与PosgreSQL服务器相关的进程之后,一切都很顺利。

svdrlsy4

svdrlsy45#

启动postgres示例:-
Docker运行--名称postgres-0 -e POSTGRES_密码=我的密码-p 5433:5433 -d postgres
现在我们可以通过以下命令检查Docker所有正在运行的容器:-
多克PS

相关问题