我已经创建了一个docker镜像来运行varnish。它被传递给varnish .vcl配置文件,自定义端口被设置,并且它可以工作。我在一台服务器上部署了多个容器,每个容器都有自定义的配置和端口。所以我写了一个docker-compose.yml文件来定义它。使用docker stack deploy,我可以让它们都运行起来。
如果我想调整docker图像,问题就来了。目前,我正在更新dockers文件中的版本,并重新运行docker stack deploy命令,该命令将关闭所有dockers并重新启动它们。我想错开重新部署,这样它们就会一次更新一个,因为一次做这些会导致服务器上的大量负载,随着我们的扩展,负载只会变得更糟。
我该怎么做呢?有没有更好的方法来解决这种情况?
提前感谢!
当前docker-compose.yml文件:
version: "3"
services:
test-site-one:
image: test/varnish:v7.3
deploy:
restart_policy:
condition: on-failure
ports:
- "8080:80"
volumes:
- /path/to/magento.vcl:/etc/varnish/default.vcl
test-site-two:
image: test/varnish:v7.3
deploy:
restart_policy:
condition: on-failure
ports:
- "8081:80"
volumes:
- /path/to/magento.vcl:/etc/varnish/default.vcl
test-site-three:
image: test/varnish:v7.3
deploy:
restart_policy:
condition: on-failure
ports:
- "8082:80"
volumes:
- /path/tp/magento.vcl:/etc/varnish/default.vcl发布于 2018-06-19 18:27:39
您可以在合成文件中指定一个update_config,如此处https://docs.docker.com/compose/compose-file/#update_config所述。
根据文档:
配置服务的更新方式。对于配置滚动更新非常有用。
containers.
version: '3.4' services: vote: image: dockersamples/examplevotingapp_vote:before depends_on: - redis deploy: replicas: 2 update_config: parallelism: 2 delay: 10s order: stop-first
发布于 2019-06-06 22:00:58
您可以将这些服务拆分为它们自己的docker-compose_<num>.yml文件,然后只需运行适当的部署命令docker stack deploy ms -c docker-compose_<num>.yml即可。如果它们需要按顺序运行,则只需将每个部署命令放在脚本中,并在需要时将睡眠命令放在其间。
https://stackoverflow.com/questions/50925692
复制相似问题