我有一个服务,我通过码头工作人员通过牧场主进行创作。我遇到的问题是,我需要在部署容器后设置密码。docker-compose,容器启动后运行脚本?
牧场主秘密的工作方式是,我设置了我的秘密,牧场主将用包含我的秘密的文件在我的容器上装入一个卷。我希望能够执行脚本来获取该秘密,并将其设置为我的配置文件的密码。
我不相信我有办法通过Dockerfile获得这个秘密,因为我不想把秘密放在git中,所以我只能通过docker-compose来做这件事。
有谁知道这是可能的吗?
===========解决方案如下:
docker-compose指定如何启动容器,而不是如何修改现有的运行容器。
Rancher documentation提到,对于秘密的默认使用,您可以通过docker-compose.yml
中的秘密数组中的名称引用秘密。
目标文件名将与密码的名称相同。
默认情况下,目标文件名将被创建为用户ID和组ID 0,文件模式0444.
在秘密部分中将外部设置为真将确保它知道秘密已经创建。的基本docker-compose.yml
实施例:
version: '2'
services:
web:
image: sdelements/lets-chat
stdin_open: true
secrets:
- name-of-secret
labels:
io.rancher.container.pull_image: always
secrets:
name-of-secret:
external: true
如图所示在 “How to Update a Single Running docker-compose Container”,更新的容器将涉及 “建造,杀死,和向上” 序列。
docker-compose up -d --no-deps --build <service_name>