目录

使用 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会向你的邮箱发送一封邮件告知。