Skip to content

Conversation

@Forne
Copy link
Contributor

@Forne Forne commented Sep 1, 2025

Summary

This PR addresses failures to run Yggdrasil on ARM systems. The root cause was the lack of ARM artifacts/images, which led to exec format error and similar issues.

What’s added:

  • Dockerfile.multiarch — multi-stage Go build that correctly propagates GOOS/GOARCH for linux/amd64, linux/arm64, linux/armhf and linux/armel platform.
  • entrypoint.sh - Introduced ENV ALLOW_IPV6_FORWARDING. When set to a truthy value (e.g., true), the entrypoint executes: sysctl -w net.ipv6.conf.all.forwarding=1.
  • GitHub Action for multi-arch builds and publishing to GHCR — triggered via workflow_dispatch, push to master and release via tags (with docker semantic tags e.g. v0.5.12 → 0.5.12, 0.5, 0).

Example published images:
https://github.com/Forne/yggdrasil-go/pkgs/container/yggdrasil-go

Testing

✅ Ubuntu (24.04, amd64) — image runs correctly.
✅ macOS (Apple Silicon, arm64) — image runs correctly.
✅ MikroTik RouterOS (arm64) — image runs under the RouterOS container package.

@Forne Forne changed the title Add multi-arch Docker build & GHCR publishing (fixes ARM runtime issues) Add multi-arch Docker build & GHCR publishing Sep 2, 2025
Copy link
Member

@neilalexander neilalexander left a comment

Choose a reason for hiding this comment

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

Looks good, thanks!

@neilalexander neilalexander merged commit 284894f into yggdrasil-network:develop Oct 4, 2025
20 checks passed
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.

2 participants