使用 GitHub Actions 自动构建镜像并推送到阿里云容器镜像服务
目录
这两天有个使用Docker部署的项目,寻思着用Actions自动化构建一下试试。过程简单,十分方便。
Step 1 找个存镜像的地方
我用的是阿里云的容器镜像服务。注册的时候会要求填写一个密码。记好,待会用。
Step 2 设置GitHub Actions Secret
尽量不要把明文的账号密码写到脚本里。Actions Secret就是为这个设计的。把账号密码填写到Actions Secret里可以在稍后用变量的方式获取到。
Step 3 编写Actions脚本
进入Actions选项卡,新建一个Actions。(学名叫workflow)
name: Docker Image CI # Actions名称
on: [push] # 执行时机
jobs:
build: # 一个名叫build的任务(名字可以随便起)
runs-on: ubuntu-latest # 基于最新版Ubuntu系统执行下列任务
steps:
- uses: actions/checkout@v1 # 将仓库内容拷贝到Ubuntu系统的虚拟环境
- name: Build the Docker image # 步骤名字
run: |
docker login --username=${{ secrets.DOCKER_USN }} registry.ap-northeast-1.aliyuncs.com --password=${{ secrets.DOCKER_PWD }} # 登录docker,并使用Secret里配置的参数
docker build -t xingwen:latest . #执行构建
docker tag xingwen registry.ap-northeast-1.aliyuncs.com/example/xingwen
docker push registry.ap-northeast-1.aliyuncs.com/example/xingwen:latest # 推送
保存文件之后,GitHub Actions会在每次push之后执行上述这个序列内的命令。将会自动构建一个新的镜像推送到指定位置。当执行出错时,GitHub会向你的邮箱发送一封邮件告知。