Loading... ## 前言 [上文](https://zhaojun.vip/archives/43/) 提到 `ZFile` 的 `Docker` 镜像构建过程,不过需要手动在服务器上执行命令构建并推送,对服务器网络和配置都有一定要求。 本文来介绍如何使用 `Github Actions` 来自动构建并推送。 ## 创建 Github Actions 配置文件 在 `github` 项目中 `/.github/workflows/` 目录下创建文件 `build.yml`,`yml` 文件名称可以随意输入。 ```yml name: Build ZFile Docker Image And Push To Docker Hub # workflow 的名字 #on: [push, pull_request] # push 和 pull_request 时会触发 on: workflow_dispatch: # 手动触发 jobs: docker: name: Publish Docker Image # 任务名称 runs-on: ubuntu-18.04 # 执行环境 env: REPO: $<ruby>secrets.ENTITY_DOMAIN_REPO }} # 推送到哪个 docker hub 仓库, 如 zhaojun1998/zfile steps<rp> (</rp><rt>- name: Checkout # 检出代码 uses: actions/checkout@v2 - name: Set up QEMU # 设置 QEMU 环境,用来模拟操作系统,用来编译 arm64 镜像和 amd64 镜像 uses: docker/setup-qemu-action@v2 with: platforms: all - name: Set up Docker Buildx # 设置 Docker Buildx 环境 id: buildx uses: docker/setup-buildx-action@v2 with: version: latest - name: Inspect builder # 查看 builder 状态 run: | echo "Name: ${{ steps.buildx.outputs.name</rt><rp>) </rp></ruby>" echo "Endpoint: $<ruby>steps.buildx.outputs.endpoint }}" echo "Status<rp> (</rp><rt>${{ steps.buildx.outputs.status</rt><rp>) </rp></ruby>" echo "Flags: $<ruby>steps.buildx.outputs.flags }}" echo "Platforms<rp> (</rp><rt>${{ steps.buildx.outputs.platforms</rt><rp>) </rp></ruby>" - name: Login to Docker Registry # 登录到 Docker Registry run: echo '$<ruby>secrets.DOCKERHUB_PASS }}' | docker login -u ${{ secrets.DOCKERHUB_USER }} --password-stdin - name<rp> (</rp><rt>Build Docker Image # 编译镜像并推送,在--platform后面指定需要兼容的平台列表 run: docker buildx build -t $REPO:latest --platform linux/amd64,linux/arm64 --push . ``` ## 配置变量 上方配置文件中所有 `${{ secrets.xxxx</rt><rp>) </rp></ruby>` 都是变量,这个需要在 `Github` 仓库设置中配置,这样敏感信息,如账号密码,不用写在配置文件中,可以避免信息泄露。 配置方式如图所示: ![](https://cdn.jun6.net/uPic/2022/05/22/1EwmRi.png) ## 触发 Actions 推送上方配置文件到登陆 `Github` 仓库后,点击 `Run workflow` 即可运行。 ![](https://cdn.jun6.net/uPic/2022/05/22/EdvE5Z.png) 然后经过一两分钟等待后,查看日志,已经运行完成了,在 `DockerHub` 上也能看生成的结果。 ![](https://cdn.jun6.net/uPic/2022/05/22/hP7NUx.png) ![](https://cdn.jun6.net/uPic/2022/05/22/7gvLvm.png) 最后修改:2022 年 05 月 22 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 1 如果觉得我的文章对你有用,请我喝杯咖啡吧。
1 条评论
貌似博客换到 handsome 了.来捧个场!