Skip to content

Build Docker image for linux/arm64#329

Open
alexbakker wants to merge 1 commit intosipcapture:masterfrom
alexbakker:docker-arm64
Open

Build Docker image for linux/arm64#329
alexbakker wants to merge 1 commit intosipcapture:masterfrom
alexbakker:docker-arm64

Conversation

@alexbakker
Copy link

There are already binary and package artifacts for arm64 in addition to amd64. With this change, an arm64 build will be available for the Docker images as well.

There are already binary and package artifacts for arm64 in addition to
amd64. With this change, an arm64 build will be available for the Docker
images as well.
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the Alpine release workflow to publish multi-architecture Docker images so arm64 users can pull native images (in addition to existing amd64 support).

Changes:

  • Add Buildx setup in the GHCR and DockerHub image publish jobs.
  • Publish Docker images for both linux/amd64 and linux/arm64.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.


steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v4
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Multi-platform builds (linux/amd64,linux/arm64) require QEMU/binfmt on the runner to execute the non-native ARM64 build stages in the Dockerfile (apk/make/go build). Add a docker/setup-qemu-action step before setting up Buildx in this job to prevent arm64 builds failing on amd64 runners.

Suggested change
- uses: actions/checkout@v4
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3

Copilot uses AI. Check for mistakes.
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v4
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This workflow generally pins docker/* actions to a specific release (e.g., docker/login-action@v3.2.0). Consider pinning docker/setup-buildx-action to an explicit version instead of @v4 for reproducibility and to avoid unexpected breaking changes.

Suggested change
- uses: docker/setup-buildx-action@v4
- uses: docker/setup-buildx-action@v4.0.0

Copilot uses AI. Check for mistakes.
Comment on lines +160 to +161
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v4
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Multi-platform builds (linux/amd64,linux/arm64) require QEMU/binfmt on the runner to execute the non-native ARM64 build stages in the Dockerfile (apk/make/go build). Add a docker/setup-qemu-action step before setting up Buildx in this job to prevent arm64 builds failing on amd64 runners.

Copilot uses AI. Check for mistakes.

- uses: actions/checkout@v4
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v4
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This workflow generally pins docker/* actions to a specific release (e.g., docker/login-action@v3.2.0). Consider pinning docker/setup-buildx-action to an explicit version instead of @v4 for reproducibility and to avoid unexpected breaking changes.

Copilot uses AI. Check for mistakes.
context: .
file: ./docker/heplify/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The DockerHub login step is conditional on secrets being present, but this build/push step is unconditional and still has push: true; when secrets are missing this job will fail at push. Gate this step (or set push to depend on steps.checkdocker.outputs.secretspresent) so the workflow can succeed without DockerHub credentials.

Suggested change
push: true
push: ${{ steps.checkdocker.outputs.secretspresent == 'true' }}

Copilot uses AI. Check for mistakes.
@kYroL01
Copy link
Contributor

kYroL01 commented Mar 23, 2026

@alexbakker Thanks a lot for this PR.
Can you please review the Copilot comments above to see if the PR can be improved ?
Thanks!

@alexbakker
Copy link
Author

@kYroL01 Did you notice this linked pull request by any chance: sipcapture/homer-app#631? If you'd like, I can change the approach used here to match homer-app. The build will work either way, but using the native arm64 runner speeds up the build quite a bit.

The Copilot review is mostly slop as far as I can tell. Which of its comments would you like me to address?

@kYroL01
Copy link
Contributor

kYroL01 commented Mar 23, 2026

@kYroL01 Did you notice this linked pull request by any chance: sipcapture/homer-app#631? If you'd like, I can change the approach used here to match homer-app. The build will work either way, but using the native arm64 runner speeds up the build quite a bit.

The Copilot review is mostly slop as far as I can tell. Which of its comments would you like me to address?

Thanks for the clarification. This is good to me :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants