1

我正在使用 Docker CE 17.09-1。我正在利用 Docker Swarm 并部署了一个包含多个服务的堆栈。

我决定将 Docker Secrets 用于各种凭据。我正在运行的一项服务要求我在配置文件中输入数据库用户名和密码。/run/secrets/我为每个所需的凭据创建了两个秘密,并且在容器中看到了只读文件。如何将这些文件的内容插入到我的配置文件中?我的配置文件是一个.ini文件,包含许多值。

提前感谢您的任何建议。

4

2 回答 2

1

根据服务的不同,您可以在环境变量中设置机密文件的路径(在 /run/secrets 中),或者指向 .ini 文件中的机密文件或将机密文件挂载到映像所在的位置期待秘密

对于前者的示例,请查看 Docker Hub 上的 mysql 映像 - 如https://hub.docker.com/_/mysql/所示:

作为通过环境变量传递敏感信息的替代方法,_FILE 可以附加到先前列出的环境变量中,从而导致初始化脚本从容器中存在的文件中加载这些变量的值。特别是,这可用于从存储在 /run/secrets/ 文件中的 Docker 机密中加载密码。

有关后者的示例,请参阅 Docker Hub 上的 rabbitmq 映像。如前所述https://hub.docker.com/_/rabbitmq/

如果您希望通过文件(例如使用 Docker Secrets)提供 cookie,则需要将其挂载到 /var/lib/rabbitmq/.erlang.cookie:

于 2018-11-18T08:37:49.830 回答
1

我之前考虑的是修改我的ENTRYPOINTCMD脚本,以便该脚本修改或生成我的本地配置文件(一个模板),以运行时在/run/secrets.

然后,一旦配置文件正确生成/赋值,相同的脚本将在前台启动服务。

于 2018-01-04T05:46:38.737 回答