Docker swarm 堆栈忽略 postgres 密码环境变量

Docker swarm stack ignores postgres password env variable

我正在尝试通过 docker stack deploy 使用此组合文件

将 postgres 和 pgadmin 部署为集群堆栈
version: '3.7'

services:
  postgres:
    image: postgres
    ports:
      - "5432:5432"
    volumes:
      - postgres-data:/var/lib/postgresql/data
    environment:
      - POSTGRES_PASSWORD=87654321
  pgadmin:
    image: dpage/pgadmin4
    ports:
     - "5433:80" 
    environment:
     - PGADMIN_DEFAULT_EMAIL=developer@happycode.io
     - PGADMIN_DEFAULT_PASSWORD=12345678
    depends_on:
     - postgres 
volumes:
  postgres-data: 

使用 docker stack deploy - POSTGRES_PASSWORD 从未应用于 postgres,我可以 echo 容器内的 env 变量,它包含正确的值87654321 但 postgres 仍然使用默认的。但是,如果我将相同的撰写文件与 docker-compose 一起使用,一切正常

我认为卷 postgres-data 已经包含了 postgres 所需的所有数据。

尝试先删除它,然后重新部署堆栈。

docker-compose down --remove-orphans --volumes

或停止 stack 和 运行:

docker volume rm postgres-data