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

时间:2021-02-12 18:53:21

标签: docker-compose docker-swarm docker-secrets

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

我想使用集群 swarm 改进部署流程,并使用机密进行配置。

我用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

这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

你有没有试过像这样引用秘密?:

WORDPRESS_DB_USER:/run/secrets/mysql_password_user_wordpress

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

相关问题