- ubuntu
- docker
- clone该仓库,创建镜像
- 使用Docker部署该镜像
 
- 挂载/var/run/docker.sock至容器中的/var/run/docker.sock,使用容器中的Docker可以控制宿主机的Docker
- 挂载~/.docker/config.json至容器中的/root/.docker/config.json,使用容器拥有pull阿里镜像的权限
- 挂载./dockerfiles至容器中的/app/dockerfiles,告诉容器中的服务该维护哪些容器
EMAIL_TRANSPORT_USER: 发送邮件的邮箱名
EMAIL_TRANSPORT_PASS: 发送邮件的邮箱密码
EMAIL_SUBSCRIBERS: 默认订阅者(多个时,以,分隔)
- 当对应分支有代码提交后会自动触发构建
- 以上图为例,branch:mqtt-broker为测试网版本的分支,每次提交代码会自动触发构建,并创建test版本的镜像
- 配置触发器URL,这是测试网暴露的aliyun-docker-trigger服务
- 触发方式选择Tag触发,Tag选择你的部署的镜像版本,以上一点自动构建为例,镜像版本为test,随着上面每完成一次test版本镜像的build完成而触发
- 在dockerfiles下创建层级文件夹
- 文件夹名对应为镜像名和TAG名,例如参考上面的步骤,我需要创建mqtt-broker/test
- 在上一步的文件夹下创建docker-compose.ymal文件
- aliyun触发器触发后,会给指定的地址(以上为例:http://www.dbjtech.com:8000/)发送请求,并携带镜像名(以上为例:mqtt-broker)与Tag名(以上为例:test)
- aliyun-docker-trigger服务,镜像名(以上为例:mqtt-broker)与Tag名(以上为例:test),找dockerfiles是否有该文件目录(以上为例:找mqtt-broker/test文件夹是否存在)
- 如果存在,则获取docker-compose.yml文件
- 执行docker pull registry.cn-qingdao.aliyuncs.com/dbjtech/${name}:${tag}
- 执行docker stack deploy -c ${file} ${name} ${tag} --with-registry-auth
- 检查email.js是否存在,存在则发送邮件






