The eclipsesyson/syson images on Docker Hub are published for linux/amd64 only. On arm64 hosts (Apple Silicon Macs, AWS Graviton, Ampere, etc.), docker compose up fails with no matching manifest for linux/arm64/v8, and the documented workaround (#991, installation-guide troubleshooting) is to force emulation with DOCKER_DEFAULT_PLATFORM=linux/amd64. Emulation works, but startup and modeling operations are noticeably slower, and it costs battery/CPU on developer laptops. Native images would benefit both Apple Silicon developers and arm64 cloud deployments.
Because the application jar is architecture-independent and is built outside Docker in CI, publishing multi-platform images only requires two small changes to the existing build.yml:
- Set up QEMU (
docker/setup-qemu-action) before the existing Buildx setup.
- Add
platforms: linux/amd64,linux/arm64 to the existing "Push Docker image" step.
The runtime Dockerfile needs no changes: eclipse-temurin:21-jre-alpine-3.20 is multi-arch, and the pinned nodejs/npm apk packages exist for both architectures. I validated this locally by running docker buildx build --platform linux/amd64,linux/arm64 against the unmodified backend/application/syson-application context — both platforms build cleanly, and the resulting arm64 image runs SysON natively (verified against the standard docker-compose setup).
The single-arch test image used by the Playwright/Cypress jobs is unaffected; only the push step becomes multi-platform.
With this in place, the Apple Silicon notes in the installation guide and the docker-compose.yml comments can be scoped to older releases.
I have the change ready and validated and will open a PR referencing this issue.
The
eclipsesyson/sysonimages on Docker Hub are published forlinux/amd64only. On arm64 hosts (Apple Silicon Macs, AWS Graviton, Ampere, etc.),docker compose upfails withno matching manifest for linux/arm64/v8, and the documented workaround (#991, installation-guide troubleshooting) is to force emulation withDOCKER_DEFAULT_PLATFORM=linux/amd64. Emulation works, but startup and modeling operations are noticeably slower, and it costs battery/CPU on developer laptops. Native images would benefit both Apple Silicon developers and arm64 cloud deployments.Because the application jar is architecture-independent and is built outside Docker in CI, publishing multi-platform images only requires two small changes to the existing
build.yml:docker/setup-qemu-action) before the existing Buildx setup.platforms: linux/amd64,linux/arm64to the existing "Push Docker image" step.The runtime
Dockerfileneeds no changes:eclipse-temurin:21-jre-alpine-3.20is multi-arch, and the pinnednodejs/npmapk packages exist for both architectures. I validated this locally by runningdocker buildx build --platform linux/amd64,linux/arm64against the unmodifiedbackend/application/syson-applicationcontext — both platforms build cleanly, and the resulting arm64 image runs SysON natively (verified against the standard docker-compose setup).The single-arch test image used by the Playwright/Cypress jobs is unaffected; only the push step becomes multi-platform.
With this in place, the Apple Silicon notes in the installation guide and the
docker-compose.ymlcomments can be scoped to older releases.I have the change ready and validated and will open a PR referencing this issue.