前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >针对小项目 docker 镜像自动更新部署的方案

针对小项目 docker 镜像自动更新部署的方案

作者头像
LinkinStar
发布2023-12-30 08:14:28
2850
发布2023-12-30 08:14:28
举报
文章被收录于专栏:LinkinStar's BlogLinkinStar's Blog

对于一些个人的小项目来说,没必要也没能力上一些大型 devops 工具(如 jenkins,argocd) 时, 有一些小工具往往非常好用

当我们 ci 打包完成 docker 镜像之后需要 cd (部署)时,如果没有工具,有时候特别麻烦,而一些大型的重工具往往对于小项目来说并不合适。今天要说的一个小工具就是 watchtower。

地址: https://github.com/containrrr/watchtower/

介绍

功能

watchtower-usage-flow.png
watchtower-usage-flow.png
  • 定时对比当前机器上的启动着的容器,如果发现新版本的镜像则停止、拉取、重启以更新容器
  • 支持 cron 指定对比时间
  • 支持指定容器
  • 支持更新后进行通知

适用场景

  • 单机小项目
  • 启停间隔无所谓
  • docker 镜像 latest 一把梭

使用

使用部署非常简单,一个 docker-compose 就能说清楚所有基础能力

代码语言:javascript
复制
version: "3"
services:
  watchtower:
    image: containrrr/watchtower
    environment:
      - TZ=Asia/Shanghai
      - WATCHTOWER_NOTIFICATIONS=slack
      - WATCHTOWER_NOTIFICATION_SLACK_HOOK_URL="https://hooks.slack.com/services/xx/xx"
      - WATCHTOWER_NOTIFICATION_SLACK_IDENTIFIER=linkinstars-watcher
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /root/.docker/config.json:/config.json
    command: your-app1 your-app2 --cleanup --interval 60
  • your-app1 your-app2 你需要监控的 docker 容器名称,如果不写,则是全部
  • --cleanup 自动清理旧镜像,建议打开
  • --interval 监控间隔时间,单位:秒。也可以替换为 cron 表达式 --schedule "0 0 4 * * *" 当然注意配置时区,否则时间不对。
  • WATCHTOWER_NOTIFICATIONS 通知渠道,具体其他通知配置可以参考:https://containrrr.dev/watchtower/notifications/
  • /var/run/docker.sock:/var/run/docker.sock 必须有,docker 容器的操作权限
  • /root/.docker/config.json:/config.json 如果需要拉取私有 docker 仓库,则需要配置这个,否则拉取不到

其他

启动之后,如果需要单次执行,可以使用下面的命令:

代码语言:javascript
复制
docker exec -it watchtower-watchtower-1 /watchtower --debug --run-once your-app1
  • watchtower-watchtower-1 为你启动的 watchtower 容器名称
  • your-app1 是你需要检查的容器名称

总结

我最喜欢它的一点是解耦了 cd 和 ci,不需要一个独立的平台去配置 ssh 访问服务器去执行 cd 的工作,所以我用了也挺久的了,对于自己家里的小项目来说是足够了的。不过就一点很难受,通知不支持任意的 webhook,仅仅支持 slack 的 webhook,也没别的办法,无法接入钉钉飞书。

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-11-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
    • 功能
      • 适用场景
      • 使用
        • 其他
        • 总结
        相关产品与服务
        容器镜像服务
        容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
        http://www.vxiaotou.com