要使镜像支持arm64,amd64,arm32,必须在工作流程文件中设置 QEMU 和 Buildx。
建立workflows文件
生成.github/workflows/Multi-arch Docker Build (GHCR).yml,内容如下:
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 36 37 38 39 40 41 42 43 44 45 46 47
| name: Multi-arch Docker Build (GHCR)
on: push: branches: - main
permissions: contents: read packages: write
jobs: build: runs-on: ubuntu-latest
steps: - name: Check out code uses: actions/checkout@v3
- name: Set up QEMU uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 with: driver: docker-container driver-opts: | network=host
- name: Login to GitHub Container Registry uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and Push (多平台镜像) uses: docker/build-push-action@v4 with: context: . platforms: linux/amd64,linux/arm64,linux/arm/v7 push: true tags: | ghcr.io/${{ github.repository_owner }}/myapp:${{ github.sha }} ghcr.io/${{ github.repository_owner }}/myapp:latest
|
执行workflows
成功后会提交到ghcr.io。


此处比预计的amd64,arm64,arm32多了一个unknown,deepseek说是Dockerfile中某些语句没有指明架构导致的,需要进一步改进。
至此已完成多种架构的支持,bug以后再修正。