Dado o seguinte arquivo de composição:
version: '3.6'
services:
hello-world:
image: hello-world
environment:
- test:test
Se eu implantá-lo usando docker stack deploy -c docker-compose.yml test
, modifique o arquivo de composição da seguinte maneira:
services:
hello-world:
image: hello-world
environment:
- test:test
- test2:test2
Agora, se eu executar, docker service inspect test_hello-world
vejo o seguinte no modelo de tarefa:
"Env": [
"test:test"
],
Existe um comando que posso usar para adicionar a segunda variável ambiental (test2) do arquivo de composição?
Resumindo, execute após atualizar o docker-compose para atualizar o serviço:
docker stack deploy -c docker-compose.yml test
Explicação :
Por favor, corra
docker ps -a
atrás de correrdocker stack deploy -c docker-compose.yml test
. Você pode ver que o status do contêiner éExited (0)
. Isso significa que seu contêiner não está em execução naquele momento.Após docker-compose.yml ser atualizado
test2:test2
e executadodocker service inspect test_hello-world
, você não atualizará seu serviço automaticamente .Você deve executar
docker stack deploy -c docker-compose.yml test
novamente apósdocker-compose.yml
as alteraçõestest2:test2
para atualizar. Então você pode ver que ele foi atualizado. Eu testei para ter certeza de que funciona assim.Saída:
Você também pode testar com
nginx
em vez dehello-world
.Porque ele sempre funciona (ativo). Depois de atualizar o docker-compose, executedocker stack deploy -c docker-compose.yml test
para atualizar.Terminal:
Naquela época, a versão anterior foi encerrada e uma nova versão foi criada.
docker ps -a
mostra isso.Terminal (docker ps -a):