我有一项通过 docker-compose 通过 Rancher 提供的服务。我遇到的问题是我需要在部署容器后设置密码。
Rancher Secret 的工作方式是,我设置我的 Secret,然后 Rancher 将在我的容器上安装一个卷,其中包含一个包含我的 Secret 的文件。我希望能够执行一个脚本来获取该秘密,并将其设置为我的配置文件中的密码。
我不相信我有办法通过 Dockerfile 获取该秘密,因为我不希望秘密存在于 git 中,所以我只能通过 docker-compose 来实现。
有谁知道这是否可能?
原文由 Blooze 发布,翻译遵循 CC BY-SA 4.0 许可协议
诀窍是在调用原始命令之前覆盖 compose COMMAND 以执行您需要的任何初始化操作。
init.sh
。您将其添加到您的图像中。Dockerfile:
以上覆盖了
sourceimage
中定义的任何入口点。这是为了让这个例子更简单。确保您从sourceimage
了解 ENTRYPOINT 在 Dockerfile 中的作用,并在 docker-compose.yml 文件的command:
中调用它。码头工人-compose.yml:
在调用主命令之前使用
exec
很重要。这会将命令安装为第一个进程 (PID1),这将使其接收 STOP、KILL(键盘上的 Ctrl-C)或 HUP 等信号。