为什么 Docker Compose 不支持我的 POSTGRES_USER 环境变量?

Why isn't Docker Compose honoring my POSTGRES_USER environment variable?

我知道很多问题听起来像这样,而且他们都有相同的答案:删除您的卷以强制其重新初始化。

问题是,我在删除我的卷时非常小心,但它每次都会错误地启动容器。

我的docker-compose.yml

version: "3.1"
services:
  db:
    environment:
      - POSTGRES_DB=mydb
      - POSTGRES_PASSWORD=changeme
      - POSTGRES_USER=myuser
    image: postgres

我的过程:

$ docker volume ls
DRIVER   VOLUME NAME
$ docker-compose up -v # or docker-compose up --force-recreate

但它总是创建“postgres”用户而不是 myuser。它启动时的输出显示它“将由用户 'postgres' 拥有”,我只能 docker 作为 postgres 执行,而不是我的用户。

说明看起来很简单。我是不是遗漏了什么,或者这是一个错误?

使用上面的撰写文件会发生什么?

I can only docker exec as postgres, not myuser

环境变量 POSTGRES_USER 控制数据库用户,而不是 linux 用户。查看documentation中的任意--用户注释一章,了解如何更改linux用户。