尽管Docker官方提供了公共的镜像仓库DockerHub,但从安全性和稳定性等方面考虑,部署私有镜像仓库是非常有必要的。Harbor是一个由VMware公司开源的企业级的Docker Registry管理项目,是我们搭建私有镜像仓库的不二之选。

而自动化一直是运维工作中的重中之重。

Yiiong希望你能够将Harbor与飞书机器人联系起来,方便管理员统一管理镜像,使管理员随时都可以知晓仓库镜像的变动信息,管理员动动手指就可以对仓库里的镜像进行操作等。

前置准备

  • 建议使用服务器搭建Harbor仓库,并且配置好https

  • 申请一个飞书企业账号

  • 可能需要一个域名?

任务

友善的用户交互

用户肯定需要知道你的机器人都可以干些什么事情吧

用户向机器人发送帮助,机器人返回可以实现的功能列表

当用户发送了一些乱七八糟的信息时,机器人需要做出一定的回复,比如我听不懂捏

Level 0 通知

当镜像状态发生改变时,机器人向管理员发起通知

通知内容包括:

  1. 镜像状态(Push or Pull or Delete)
  2. 镜像名称以及标签
  3. 镜像状态改变的日期
  4. 镜像状态改变者

Level 1 简单查询

管理员向机器人发送查询项目,机器人返回所有项目的名称、所属者以及访问级别

管理员向机器人发送查询仓库,机器人返回所有仓库的名称、创建时间以及更新时间

Level 2 镜像管理

在我们的团队开发过程中,难免会出现多次推送镜像但镜像测试不通过的情况,

Yiiong希望当镜像被以Push状态推送时,通知内容中新增加一个超链接按钮,点击这个按钮即可删除这个镜像

另一种方式是,向机器人发送删除镜像:镜像名,即可删除某个镜像

Level 3 用户管理

我们的整个仓库不可能只有一个管理员用户,管理员经常需要为不同的成员创建不同的用户

Yiiong希望管理员向机器人发送创建用户:用户名-密码-邮箱即可创建一个新用户

并且可以将特定用户以开发者身份加入到特定项目的成员中

Level 4 打包

编写Dockerfile,将你的所有文件用Docker打包制作成镜像,使其他用户填入一些必要的信息就可以愉快地使用你的作品辣!

加分项

  1. 发挥你的奇思妙想,实现一些意想不到的功能
  2. 使用Kubernetes完成必要的内网穿透
  3. 使用UptimeKuma监控你的仓库,当出现问题时通过机器人返回一些必要信息
  4. 飞书开放平台提供了一种美观的”卡片式“消息,使用它的话答辩的时候一定很潇洒啊