The ghcr.io/tryghost/activitypub-migrations image publishes an arm64 manifest, but the /usr/bin/migrate binary inside that arm64 image is built for x86-64.
This causes Docker to fail on an arm64 node:
/bin/bash: line 15: /usr/bin/migrate: cannot execute binary file: Exec format error
Details:
node architecture: arm64
image: ghcr.io/tryghost/activitypub-migrations:1.2.4
pulled digest: sha256:89878ecf3fd96d463e70e2c369d399d6a70f650f4690ec8f3be2ad3422c443b3
Inspecting the binary from that image shows:
/usr/bin/migrate: ELF 64-bit LSB executable, x86-64, statically linked, stripped
Expected behavior: the linux/arm64 image variant should contain an arm64-compatible migrate binary.
Actual behavior: the linux/arm64 image variant contains an x86-64 binary, so the init container exits with code 126 and fails.
I fixed it in pull request #1833 by adding TARGETARCH argument to the Dockerfile.
The
ghcr.io/tryghost/activitypub-migrationsimage publishes anarm64manifest, but the/usr/bin/migratebinary inside that arm64 image is built forx86-64.This causes Docker to fail on an arm64 node:
Details:
Inspecting the binary from that image shows:
Expected behavior: the
linux/arm64image variant should contain an arm64-compatiblemigratebinary.Actual behavior: the
linux/arm64image variant contains an x86-64 binary, so the init container exits with code126and fails.I fixed it in pull request #1833 by adding TARGETARCH argument to the Dockerfile.