Description
The published Docker image for Rustfava 1.31.0 is not available for Linux ARM64.
On an aarch64 Linux host, the normal Docker installation documented in the README fails because ghcr.io/rustledger/rustfava:1.31.0 only contains a linux/amd64 image. Forcing the AMD64 image also fails with exec format error on a host without x86 emulation.
docker manifest inspect ghcr.io/rustledger/rustfava:1.31.0 reports only:
The current Dockerfile also hard-codes the x86-64 Wasmtime archive:
wasmtime-v29.0.1-x86_64-linux.tar.xz
A native ARM64 image is feasible. I built Rustfava 1.31.0 from the repository using python:3.13-slim, the ARM64 wasmtime Python wheel, and the pinned Rustledger WASM component. The resulting image ran natively on aarch64, loaded a ledger, and served the journal, holdings, balance sheet, and errors pages successfully.
Steps to Reproduce
-
Use a Linux ARM64 host:
-
Pull the documented Docker image:
docker pull ghcr.io/rustledger/rustfava:1.31.0
-
Observe the failure:
no matching manifest for linux/arm64/v8 in the manifest list entries
-
Alternatively, force the AMD64 image and try to run it without an emulator:
docker pull --platform linux/amd64 ghcr.io/rustledger/rustfava:1.31.0
docker run --rm --platform linux/amd64 \
ghcr.io/rustledger/rustfava:1.31.0 --version
-
Observe:
exec /usr/local/bin/rustfava: exec format error
Expected Behavior
Release tags and latest should publish a multi-platform image containing at least:
The Dockerfile should avoid hard-coding an x86-64 Wasmtime binary, either by selecting the archive from TARGETARCH or by relying on the architecture-specific wasmtime Python package already required by Rustfava.
If ARM64 images are intentionally unsupported, the Docker installation documentation should state that limitation and provide an ARM64 build procedure.
Rustfava Version
1.31.0
Python Version
3.13
Operating System
Linux ARM64 (aarch64)
Additional Context
The publish workflow currently invokes docker/build-push-action without a multi-platform platforms setting.
Description
The published Docker image for Rustfava 1.31.0 is not available for Linux ARM64.
On an
aarch64Linux host, the normal Docker installation documented in the README fails becauseghcr.io/rustledger/rustfava:1.31.0only contains alinux/amd64image. Forcing the AMD64 image also fails withexec format erroron a host without x86 emulation.docker manifest inspect ghcr.io/rustledger/rustfava:1.31.0reports only:The current Dockerfile also hard-codes the x86-64 Wasmtime archive:
A native ARM64 image is feasible. I built Rustfava 1.31.0 from the repository using
python:3.13-slim, the ARM64wasmtimePython wheel, and the pinned Rustledger WASM component. The resulting image ran natively onaarch64, loaded a ledger, and served the journal, holdings, balance sheet, and errors pages successfully.Steps to Reproduce
Use a Linux ARM64 host:
uname -m # aarch64Pull the documented Docker image:
Observe the failure:
Alternatively, force the AMD64 image and try to run it without an emulator:
Observe:
Expected Behavior
Release tags and
latestshould publish a multi-platform image containing at least:The Dockerfile should avoid hard-coding an x86-64 Wasmtime binary, either by selecting the archive from
TARGETARCHor by relying on the architecture-specificwasmtimePython package already required by Rustfava.If ARM64 images are intentionally unsupported, the Docker installation documentation should state that limitation and provide an ARM64 build procedure.
Rustfava Version
1.31.0
Python Version
3.13
Operating System
Linux ARM64 (
aarch64)Additional Context
The publish workflow currently invokes
docker/build-push-actionwithout a multi-platformplatformssetting.