如何以最少的停机时间在docker-compose容器中重新加载环境变量?
version: '2'services:
app:
build:
context: .
command: python src/app.py
restart: on-failure
depends_on:
- db
environment:
- TJBOT_DB_HOST=db
- TJBOT_API_KEY
- TJBOT_AUTO_QUESTION_TIME
env_file:
- .env
db:
image: mongo:3.0.14
volumes:
- mongodbdata:/data/db
volumes:
mongodbdata:
如果更改.env
文件,如何在最小的停机时间内重新加载容器以使用新的环境变量?
回答:
如果您使用docker-compose运行yml,则可以运行docker-compose up
-d它,它将重新创建所有具有更改的容器,并保持所有不变的服务不变。
$ cat docker-compose.env2.ymlversion: '2'
services:
test:
image: busybox
# command: env
command: tail -f /dev/null
environment:
- MY_VAR=hello
- MY_VAR2=world
test2:
image: busybox
command: tail -f /dev/null
environment:
- MY_VAR=same ole same ole
$ docker-compose -f docker-compose.env2.yml up -d
Creating network "test_default" with the default driver
Creating test_test_1
Creating test_test2_1
$ vi docker-compose.env2.yml # edit the file to change MY_VAR
$ docker-compose -f docker-compose.env2.yml up -d
Recreating test_test_1
test_test2_1 is up-to-date
如果您docker stack deploy -c docker-
compose.yml使用版本3文件格式运行容器,则可以对服务进行滚动更新,如果您有多个服务实例在运行,它将防止任何停机。此功能仍是非常新的功能,您需要1.13.1修复某些更新问题,并且与任何新功能一样,错误仍在解决中。
以上是 如何以最少的停机时间在docker-compose容器中重新加载环境变量? 的全部内容, 来源链接: utcz.com/qa/426875.html