Docker-compose:得到拉动&部署的图像

时间:2018-04-16 16:07:11

标签: bash docker jenkins groovy docker-compose

上下文

我目前正在尝试创建一个定期构建的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 pulldocker-compose up -d的输出,以了解哪些图像实际上是新的并已部署。我需要一个适用于Jenkins管道(声明性或脚本化)的解决方案

1 个答案:

答案 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