如何以最少的停机时间在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.yml

version: '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

回到顶部