【问题标题】:Docker-compose: get pulled & deployed imagesDocker-compose:获取拉取和部署的图像
【发布时间】:2018-09-26 10:53:20
【问题描述】:

上下文:

我目前正在尝试创建一个定期构建并更新我的 docker-compose 文件中的图像的 Jenkins 作业。通过在我的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 意味着它应该定期拉取新的 docker 镜像并通知我镜像已准备好更新。 Auto 表示允许自动部署新镜像。

问题:

我想这样做,以便在拉取新图像时,Jenkins 会自动通知我新图像已准备好/已部署。然而问题是我必须解释docker-compose pulldocker-compose up -d 的输出才能知道哪些图像实际上是新的和部署的。我需要一个适用于 Jenkins 管道(声明式或脚本式)的解决方案

【问题讨论】:

    标签: bash docker jenkins groovy docker-compose


    【解决方案1】:

    尝试观看此视频https://www.youtube.com/watch?v=ZL3hMP9BdmQ;我想这就是你要找的。


    https://github.com/v2tec/watchtower

    “如果您按如下所述安装配置文件,请确保在启动您的监视图像时也预先添加注册表的 url(您可以省略 https://)。这是一个完整的 docker-compose.yml 文件从 dockerhub 的私有 repo 启动一个 docker 容器并使用 watchtower 对其进行监控。注意命令参数将间隔更改为 30 秒而不是默认的 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-14
      • 1970-01-01
      • 1970-01-01
      • 2021-08-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-01
      • 2018-01-15
      相关资源
      最近更新 更多