主要逻辑就是查看 1、拉取镜像库中的最新镜像,2、执行 docker-compose down 和 up (重启 docker 容器), 我考虑将这个脚本每 10 分钟自动运行,首先检查是否有更新,如果有更新再拉取镜像,重启容器,没有更新的容器就再等待,不再重启容器 代码地址
1
HuHui 2019-03-08 12:03:59 +08:00
直接在代码更新到时候主动去 pull
|
2
daijinming OP @HuHui 镜像由开发上传到镜像服务器,然后在服务器上 pull,现在是割裂的,当前的部署思路是这样的: https://www.jianshu.com/p/5c855f42c569
|
3
azh7138m 2019-03-08 12:17:32 +08:00 via Android
|
4
daijinming OP @azh7138m 感觉有点杀鸡用牛刀了,其实我就是想在执行 docker pull 获得输出信息中包含了新版本,然后重启容器。我主要是不太清楚执行 os.system 是否会输出字符串,然后正则表达判断下,决定是否重启
|
5
anubu 2019-03-08 12:57:21 +08:00 1
直接把 docker-compose down 这句命令去掉不就可以了吗?还是我理解的不太对。每隔 10 分钟就直接 pull 和 up,有更新就会 pull 到新镜像,up 就会使用新镜像重建容器,没更新就 pull 不到镜像,up 也不会造成任何影响。
|
6
daijinming OP @anubu 尝试下去掉`docker-compose down`确实没有关系,只是不太确定每 10 分钟执行一次`docker-compose up`,如果没有更新的话,会不会对容器造成重启
|
7
CFO 2019-03-08 13:22:45 +08:00 via Android
watchtower 了解一下?
|
8
daijinming OP @CFO 三楼也推荐来着,我看来下,和我的情况不是太适合。我主要依赖 docker-compose
|
9
daijinming OP @anubu ‘ If there are existing containers for a service, and the service ’ s configuration or image was changed after the container ’ s creation, docker-compose up picks up the changes by stopping and recreating the containers (preserving mounted volumes). ’ 这句话是不是还能理解为如果镜像没有变化,就不重启容器
|
10
yuikns 2019-03-08 13:38:59 +08:00
If you want to force Compose to stop and recreate all containers, use the
`--force-recreate` flag. 你不 `--force-recreate`,没变化是不动的。 |
11
anubu 2019-03-08 14:42:06 +08:00
@daijinming 如果镜像和 compose file 没有变化,up 命令不会重启或重建原容器,不会对原容器有任何影响。
|