mirror of
https://github.com/amnezia-vpn/amneziawg-go.git
synced 2026-10-13 21:34:25 +00:00
[PR #150] build: publish multi-arch Docker image (linux/amd64, linux/arm64) #169
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
amnezia-vpn/amneziawg-go#169
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/amnezia-vpn/amneziawg-go/pull/150
Author: @AlbertShtein
Created: 7/7/2026
Status: 🔄 Open
Base:
master← Head:multiarch-docker-arm64📝 Commits (1)
a5b63ebbuild: publish multi-arch Docker image (linux/amd64, linux/arm64)📊 Changes
2 files changed (+12 additions, -6 deletions)
View changed files
📝
.github/workflows/build-if-tag.yml(+4 -0)📝
Dockerfile(+8 -6)📄 Description
What
Publish the Docker image for both
linux/amd64andlinux/arm64.Why
The image on Docker Hub is currently amd64-only, so installing AmneziaWG (2.0) from the AmneziaVPN app fails on arm64 servers (Raspberry Pi, AWS Graviton, Oracle Ampere, Hetzner CAX) — the app's
docker build --pullpulls an amd64-only base. See #65 (closed) and amnezia-vpn/amnezia-client#869.The previous attempt (#65) only added
platforms:to the workflow, which is not enough: the Dockerfile downloads a prebuilt amd64-onlyalpine-3.19-amneziawg-tools.zipfrom GitHub releases, so an arm64 image would still contain amd64awg/awg-quickbinaries.How
amneziawg-toolsfrom source (same pinned release tagv1.0.20250901) in a dedicated build stage instead of downloading the zip. The final stage is unchanged in layout:awg,awg-quick,wg/wg-quicksymlinks,amneziawg-go. This makes the image buildable for any platform and removes the runtime dependency on release artifacts.docker/setup-qemu-actionandplatforms: linux/amd64,linux/arm64to the publish step.FromAsCasingbuild warnings as a drive-by.Alternative
If you would rather keep the release-zip download approach, amnezia-vpn/amneziawg-tools#57 adds arm64 zips to the tools release artifacts. Once that is merged and a new tools release is tagged, I'm happy to rework this PR to select the zip by
TARGETARCHinstead of building from source — building from source is proposed here only because it needs no coordination between the two repos and works for already-published tools tags.Testing
Built and ran both platforms locally with
docker buildx:linux/arm64(native on Apple Silicon / verified binaries on Raspberry Pi 5):amneziawg-go --version→Userspace AmneziaWG daemon for linux-arm64,awg --version→amneziawg-tools v1.0.20210914, symlinks present.linux/amd64(no regression):amneziawg-go --version→Userspace AmneziaWG daemon for linux-amd64,awg --versionOK.🤖 Generated with Claude Code
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.