首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >交错扩展坞堆栈部署

交错扩展坞堆栈部署
EN

Stack Overflow用户
提问于 2018-06-19 18:04:41
回答 2查看 599关注 0票数 2

我已经创建了一个docker镜像来运行varnish。它被传递给varnish .vcl配置文件,自定义端口被设置,并且它可以工作。我在一台服务器上部署了多个容器,每个容器都有自定义的配置和端口。所以我写了一个docker-compose.yml文件来定义它。使用docker stack deploy,我可以让它们都运行起来。

如果我想调整docker图像,问题就来了。目前,我正在更新dockers文件中的版本,并重新运行docker stack deploy命令,该命令将关闭所有dockers并重新启动它们。我想错开重新部署,这样它们就会一次更新一个,因为一次做这些会导致服务器上的大量负载,随着我们的扩展,负载只会变得更糟。

我该怎么做呢?有没有更好的方法来解决这种情况?

提前感谢!

当前docker-compose.yml文件:

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

发布于 2018-06-19 18:27:39

您可以在合成文件中指定一个update_config,如此处https://docs.docker.com/compose/compose-file/#update_config所述。

根据文档:

配置服务的更新方式。对于配置滚动更新非常有用。

containers.

  • failure_action:

  • parallelism:一次更新的容器数量。

  • delay:更新一组containers之间的等待时间,如果更新失败,应如何处理。continue、rollback或pause之一(默认值:每次任务更新后的pause).

  • monitor:持续时间),以监视故障(ns|us|ms|s|m|h) (更新期间update.

  • order:操作顺序期间可容忍的默认0s).

  • max_failure_ratio:故障率。stop-first (旧任务在启动新任务之前停止)或start-first (新任务先启动,正在运行的任务短暂重叠)之一(默认的stop- first )注意:仅支持v3.4及更高版本。

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

票数 0
EN

Stack Overflow用户

发布于 2019-06-06 22:00:58

您可以将这些服务拆分为它们自己的docker-compose_<num>.yml文件,然后只需运行适当的部署命令docker stack deploy ms -c docker-compose_<num>.yml即可。如果它们需要按顺序运行,则只需将每个部署命令放在脚本中,并在需要时将睡眠命令放在其间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50925692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档