上下文
我目前正在尝试创建一个定期构建的Jenkins作业,并更新docker-compose文件中的图像。我设法通过在docker-compose.yml
标记我的服务来获得此基本版本。例如:
gitlab:
image: 'gitlab/gitlab-ce:latest'
container_name: 'gitlab'
labels:
update: 'notify'
...
letsencrypt:
image: 'jrcs/letsencrypt-nginx-proxy-companion'
container_name: 'letsencrypt-companion'
labels:
update: 'auto'
...
Notify
意味着它应定期提取新的泊坞窗图像并通知我图像已准备好更新。 Auto
表示允许自动部署新映像。
问题:
我想这样做,以便在拉出新图像时,Jenkins会自动通知我新图像已准备好/已部署。但问题是,我必须解释docker-compose pull
和docker-compose up -d
的输出,以了解哪些图像实际上是新的并已部署。我需要一个适用于Jenkins管道(声明性或脚本化)的解决方案
答案 0 :(得分:0)
尝试观看此视频https://www.youtube.com/watch?v=ZL3hMP9BdmQ;我想你正在寻找。
https://github.com/v2tec/watchtower
“如果您按如下所述挂载配置文件,请确保在启动监视图像时也为注册表添加URL(您可以省略https://)。这是一个完整的docker-compose.yml文件,它启动从dockerhub的私人仓库获取一个docker容器并使用了望塔监视它。注意命令参数将间隔更改为30s而不是默认的5分钟。“
version: "3"
services:
cavo:
image: index.docker.io/<org>/<image>:<tag>
ports:
- "443:3443"
- "80:3080"
watchtower:
image: v2tec/watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /root/.docker/config.json:/config.json
command: --interval 30