Github Aciton 迁移阿里云容器自动部署流程
本站使用的阿里云容器服务大部分情况下能满足我的需求,但是它有一个毛病,在容器构建失败的时候无法使得用户得到通知,使得我在推送了新代码的情况下,需要我去关注构建状态。这使得我无法专注于其他事情,于是动了迁移的念头。
大致流程如下。
1、阿里云容器镜像服务创建镜像仓库,选择代码源为本地仓库。
2、在Github的代码仓库中添加Github Action自动化CI的配置,构建容器并且推送到阿里云镜像仓库,定义流程失败和成功的行为。
其中最重要的就是编写Github Action的配置文件
name: Docker镜像构建!
on: push
jobs:
build:
name: build&&push
runs-on: ubuntu-latest
env:
REGISTRY: "registry.cn-hongkong.aliyuncs.com"
TAG: "unliar/app-happysooner-next-web:latest"
steps:
- name: "复制文件"
uses: actions/checkout@v1
- name: "列出文件"
run: ls
- name: "容器构建"
run: |
docker login --username=${{ secrets.ALIYUN_DOCKER_NAME }} $REGISTRY --password=${{ secrets.ALIYUN_DOCKER_PASS }}
docker build -t build:latest .
docker tag build:latest $REGISTRY/$TAG
docker push $REGISTRY/$TAG
- name: "构建失败 - 通知远浅排查问题"
if: failure()
run: curl -H "Content-Type:application/json" -X POST 通知服务
- name: "构建成功 - 通知远浅让他开心"
if: success()
run: curl -H "Content-Type:application/json" -X POST 集群更服务
- name: "构建成功 - 通知服务集群更新服务"
if: success()
run: curl -X POST ${{ secrets.DOCKER_HOOK }}
其中配置文件的secrets.XXX变量 需要在项目的Settings/Secrets里面添加。
具体的文件配置不多赘述,都还算比较简单,请查看官方文档 。
如果一切顺利,我们的工作流程就从 【代码变更 -> 阿里云容器服务检测到代码变更 -> 触发构建流程 -> 触发器通知】修改为 【代码变更 -> 触发Github Action构建 -> 构建结果通知。
Github Action 真香!
赠人玫瑰, 手有余香。🌹
打赏
特别鸣谢
感谢以下用户对本文的支持与鼓励
加载打赏用户中
发表评论
文章评论
暂无任何评论,快去发表吧~