自用项目,部署在容器内的Docker-WebHook,与宿主机Docker进行通信,用于更新容器内Service。CI/CD中的一环。
- 代码仓库: Github
- 容器构建: 阿里云容器服务
- 部署集成: 本项目处于这一环
- WebHook钩子触发自动更新Service
- 更新完毕邮件通知(可选)
- 定时清理无用镜像存储
我直接使用了阿里云的容器仓库进行自动化构建,如需本地构建,项目中也提供了Dockerfile。 项目中使用了多阶段构建,初次构建会拉取大镜像耗时较长,但构建后镜像体积很小。
git clone https://github.com/moonlightMing/simple-docker-inside-webhook.git
cd ./simple-docker-inside-webhook
vim config.json
# 添加如下内容, 使用时请去除注释,json语法不允许有注释
{
# 本地监听端口
"bind_host": ":9375",
"docker_host": "dockerhost:2375",
"docker_api_version": "x.xx",
"auth_key": "xxxxxx",
# 远程仓库账号
"docker_registry_auth": {
"user": "xxxxxx@xx.com",
"password": "xxxxxxxx"
},
# 邮件设置
"email": {
# 开关
"open": false,
# 发送者邮箱配置
"smtp_host": "smtp.163.com",
"smtp_port": ":465",
"user_email": "xxx@163.com",
"password": "xxx",
# 接受者地址
"send_to": "xxx@qq.com"
},
# 定时任务 不用可以为空
"cron": [
{
"event": "CLEAN_NONE_TAG_IMAGE",
"spec": "* * * */7 * *"
}
]
}
docker build -t xxx/docker-webhook .