From 05b7be093cadd2740a7a710a70aaca611aa92a2f Mon Sep 17 00:00:00 2001 From: "aditya.chandel" <> Date: Sat, 22 Mar 2025 02:38:44 -0600 Subject: [PATCH] Add multi-arch Docker build support to GitHub Actions --- .github/workflows/docker-build-publish.yml | 24 ++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/.github/workflows/docker-build-publish.yml b/.github/workflows/docker-build-publish.yml index 9a243840c..307da050b 100644 --- a/.github/workflows/docker-build-publish.yml +++ b/.github/workflows/docker-build-publish.yml @@ -20,6 +20,12 @@ jobs: - name: Log in to GitHub Container Registry run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin + - name: Set up QEMU for multi-arch builds + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Get Latest Master Version id: get_version run: | @@ -63,19 +69,21 @@ jobs: git tag ${{ env.new_tag }} git push origin ${{ env.new_tag }} - - name: Build Docker Image + - name: Build and Push Docker Image run: | - docker build -t ghcr.io/${{ github.actor }}/booklore-app:${{ env.image_tag }} . - - - name: Push Docker Image to GHCR - run: | - docker push ghcr.io/${{ github.actor }}/booklore-app:${{ env.image_tag }} + docker buildx create --use + docker buildx build \ + --platform linux/amd64,linux/arm64 \ + --tag ghcr.io/${{ github.actor }}/booklore-app:${{ env.image_tag }} \ + --push . - name: Push Latest Tag (Only for Master) if: github.ref == 'refs/heads/master' run: | - docker tag ghcr.io/${{ github.actor }}/booklore-app:${{ env.new_tag }} ghcr.io/${{ github.actor }}/booklore-app:latest - docker push ghcr.io/${{ github.actor }}/booklore-app:latest + docker buildx build \ + --platform linux/amd64,linux/arm64 \ + --tag ghcr.io/${{ github.actor }}/booklore-app:latest \ + --push . - name: Create GitHub Release (Only for Master) if: github.ref == 'refs/heads/master'