docker swarm:为环境变量使用秘密

docker swarm: use secrets for enviroments variable

我正在使用 docker swarm 和 portainer 来部署之前直接在 proxmox vms 中的应用程序。

我想改进集群集群的部署流程和机密配置。

我用portainer定义了swarm集群中的秘密

我从 wordpress 开始,但秘密并不像我预期的那样有效。我想使用秘密来完成环境变量,但这保持为空:

version: "3.8"
secrets:
  mysql_ip_proxmox_lan_real:
    external: true
  mysql_password_user_wordpress:
    external: true
  mysql_password_proxmox_wordpress:
    external: true
services: 
  wordpress:
    restart: always
    image: wordpress:latest
    ports:
       - "8080:80"
    environment:
       WORDPRESS_DB_HOST: ${mysql_ip_proxmox_lan_real}:3306
       WORDPRESS_DB_USER: ${mysql_password_user_wordpress}
       WORDPRESS_DB_PASSWORD: ${mysql_password_proxmox_wordpress}
       WORDPRESS_DB_NAME: wordpress
    secrets:
      - mysql_ip_proxmox_lan_real
      - mysql_password_user_wordpress
      - mysql_password_proxmox_wordpress

执行此操作的正确方法是什么?

你试过像这样参考秘密吗?:

WORDPRESS_DB_USER:/run/secrets/mysql_password_user_wordpress

据我所知(我不是专家),其他一切都是正确的。我不确定附加端口是否有效。如果上述方法有效,但您的端口仍然有问题,也许只是将其添加到机密中?

根据来自 https://hub.docker.com/_/wordpress 的文档,您可以将 FILE 附加到任何环境变量并引用 /run/secrets/