本文最后更新于 2020年08月13日

前言
GitHub Action这个工具实在是太方便了,不仅速度快,配置简单,还能够方便的在没有真机的情况下制作全平台的docker image
教程
GitHub Action的前期配置请参考我这篇博客:https://sleele.com/2020/01/06/使用github-action构建image推送docker-hub/
我选用的是https://github.com/ilteoood/docker_buildx 的workflow,可以非常方便的配置各项参数
下面以我的这个配置文件举例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | name: Build Amd64 Image on: release: types: [published] jobs: build: runs-on: ubuntu-latest name: Build image job steps: - name: Checkout master uses: actions/checkout@master - name: Build and publish image uses: ilteoood/docker_buildx@master with : publish: true imageName: 你的docker id/你的镜像名 platform: linux/amd64,linux/arm64,linux/arm/v7 # 你准备构建的镜像平台 tag: latest # 默认latest,可以针对平台,修改tag dockerHubUser: ${{ secrets.DOCKER_USERNAME }} # docker hub userid dockerHubPassword: ${{ secrets.DOCKER_PASSWORD }} # docker hub password |
platform
支持:linux/amd64,linux/arm64,linux/arm/v7
crazy-max/ghaction-docker-buildx
再举例一个比较复杂的,crazy-max/ghaction-docker-buildx的workflow比较复杂,使用这个的一般都是大项目,参数很多,大家可以参照我上面的内容来理解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | name: Build Image on: push: branches: - 'master' paths-ignore: - "README.md" jobs: buildx: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v1 - name: Dockerhub login env: DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} run: | echo "${DOCKER_PASSWORD}" | docker login --username ${DOCKER_USERNAME} --password-stdin - name: Set up Docker Buildx id: buildx uses: crazy-max/ghaction-docker-buildx@v1 with: buildx-version: latest - name: Build dockerfile (with push) env: DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} run: | docker buildx build \ --platform=linux/amd64,linux/arm/v7,linux/arm64 \ --output "type=image,push=true" \ --file ./Dockerfile . \ --tag superng6/aria2:latest |
推送到Docker HUB之后的效果图
补充
本教程是针对有一定编程能力的人,需要注意的是,底层镜像必须是多平台的才可以,还有你的代码和库也必须是对应平台的,所以我的建议是,针对不同平台创建不同分支,这样虽然麻烦,但是灵活性更高
原创声明
本文由 NG6 于2020年01月10日发表在 sleele的博客
如未特殊声明,本站所有文章均为原创;你可以在保留作者及原文地址的情况下转载
转载请注明:使用GitHub Action构建全平台docker镜像 | sleele的博客
本文由 NG6 于2020年01月10日发表在 sleele的博客
如未特殊声明,本站所有文章均为原创;你可以在保留作者及原文地址的情况下转载
转载请注明:使用GitHub Action构建全平台docker镜像 | sleele的博客