我有一个在3个节点上运行的Docker Swarm,具有3个副本(每个节点1个)。我们的持续集成管道使用docker stack deploy
命令部署新代码。
几乎系统地更新了3个副本中的2个。 docker service ls
显示服务1“自xxx秒起运行”,服务2“自xxx秒起运行”和服务3在“ xxx小时前”运行,显然没有尝试更新服务。
请注意以下几点:
docker service scale xxx=0
然后docker service scale xxx=3
按预期更新所有服务docker service update --force xxx
总是失败,但是我无法找到有意义的日志使用的完整命令:
docker --tlsverify --tlscacert=<ca> --tlscert=<cert> --tlskey=<key> stack deploy --prune --with-registry-auth --resolve-image=always --compose-file docker-compose.yml stackname
docker-compose示例:
services:
api:
image: gitlab.heyaxel.com:5050/axel/axel-coach-manager:{{TAG}}
deploy:
replicas: 3
其中TAG被分支的最新git哈希(git describe --always
)取代。