Context & versions
hydra-node: 2.3.0, image ghcr.io/cardano-scaling/hydra-node:2.3.0
- Fails on: Apple Silicon (M1 Pro), macOS 26.5.2 (25F84), Docker Desktop 4.84.0 (234817)
- Rosetta for x86_64/amd64 emulation: both tested
- Network: preprod, head running in offline and online mode
Works fine:
- same image, same command, on Linux ubuntu 2404
hydra-node 2.3.0 native MacOS ARM64 binary on the same machine
Not tested: Intel Mac.
What happens
The container starts and then hangs indefinitely with no output at all — no log
line, no error, no exit. It has to be killed manually.
The published image has no multi-arch manifest list, so there is no linux/arm64
variant for Docker to select on Apple Silicon. It pulls the amd64 image and runs
it under emulation, which appears to be where it hangs.
docker manifest inspect ghcr.io/cardano-scaling/hydra-node:2.3.0 returns a plain
application/vnd.docker.distribution.manifest.v2+json (single image manifest,
one layer) rather than a manifest list:
{
"schemaVersion": 2,
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"config": { ... },
"layers": [ { "size": 43881124, ... } ]
}
Steps to reproduce
- On an Apple Silicon Mac:
docker pull ghcr.io/cardano-scaling/hydra-node:2.3.0
docker run --rm ghcr.io/cardano-scaling/hydra-node:2.3.0 --version
- The container hangs with no output
The same command works on Linux, and the native ARM64 binary works on the same Mac.
Expected
Either a linux/arm64 variant published in a multi-arch manifest, or a note in
the installation docs that the image is amd64-only and Apple Silicon users should
use the native binary instead.
Possible fix
Releases already ship a MacOS ARM64 binary, so an ARM toolchain seems to be in
place. Adding linux/arm64 to the image build and publishing a manifest list
would let Apple Silicon run it natively and skip emulation entirely.
Happy to test a candidate image on an M1.
Context & versions
hydra-node: 2.3.0, imageghcr.io/cardano-scaling/hydra-node:2.3.0Works fine:
hydra-node2.3.0 native MacOS ARM64 binary on the same machineNot tested: Intel Mac.
What happens
The container starts and then hangs indefinitely with no output at all — no log
line, no error, no exit. It has to be killed manually.
The published image has no multi-arch manifest list, so there is no
linux/arm64variant for Docker to select on Apple Silicon. It pulls the amd64 image and runs
it under emulation, which appears to be where it hangs.
docker manifest inspect ghcr.io/cardano-scaling/hydra-node:2.3.0returns a plainapplication/vnd.docker.distribution.manifest.v2+json(single image manifest,one layer) rather than a manifest list:
Steps to reproduce
docker pull ghcr.io/cardano-scaling/hydra-node:2.3.0docker run --rm ghcr.io/cardano-scaling/hydra-node:2.3.0 --versionThe same command works on Linux, and the native ARM64 binary works on the same Mac.
Expected
Either a
linux/arm64variant published in a multi-arch manifest, or a note inthe installation docs that the image is amd64-only and Apple Silicon users should
use the native binary instead.
Possible fix
Releases already ship a MacOS ARM64 binary, so an ARM toolchain seems to be in
place. Adding
linux/arm64to the image build and publishing a manifest listwould let Apple Silicon run it natively and skip emulation entirely.
Happy to test a candidate image on an M1.