dockerhub 获取 token
登录 dockerhub,获取token,如下
将 dockerhub token 添加到 github repo 中
github 仓库添加 action
github 代码仓库页面中选择 Actions
点击 Docker image Action 的 Configure
编辑action配置文件.github/workflows/docker-image.yml 内容如下
|
|
buildx 依赖 qemu
以下对该文件内容分别进行解释:
- name: 流程名,定义了这个流程的名称,可以与配置文件名不同。只要与其他流程配置文件中的流程名不同即可。
- on: 触发条件,定义了在何种条件下触发该流程。这里定义的是在 main 分支提交时触发该流程。
- env: 环境变量,定义了静态可公开环境变量,一般来说可以将应用的名称、镜像的名称写在这个部分。
- jobs: 任务,定义了流程所需要执行的各项任务,可以是一个或多个。
- 这里定义了 5 个任务,从前到后分别是
- 检出代码
- 登录到github,其中
${{ secrets.DOCKERHUB_USERNAME }}
和${{ secrets.DOCKERHUB_TOKEN }}
分别是 dockerhub 的用户名和token,需要在dockerhub生成,然后配置在仓库-Settings-Security-Securets and variables - Actions
中 - 安装 qemu (buildx 依赖 qemu)
- 安装 buildx,支持构建更多架构的惊喜
- 构建docker镜像,并推送到dockerhub仓库
- file: 指定在项目仓库中的Dockerfile文件位置。
- platforms:指定构建镜像所需要兼容支持的平台架构
- tags: 将要构建的镜像标签,这里每次构建latest镜像,
${{ env.GITHUB_REPOSITORY_NAME_PART }}
表示仓库名
注:docker/setup-qemu-action@v2
对应的就是 https://github.com/docker/setup-qemu-action 分支v2
参考:
https://lisz.me/tech/docker/github-action.html
http://www.ruanyifeng.com/blog/2019/09/getting-started-with-github-actions.html
https://dmesg.app/github-actions-docker-image.html
https://juejin.cn/post/7088959261870391332