Docker 29 introduced the io.containerd.snapshotter.v1 storage driver as an alternative to overlay2 (see the [storage driver documentation](https://docs.docker.com/engine/storage/drivers/)).
When running mint build inside an arm64 container, the runtime incorrectly selects the amd64 variant of a multi-architecture image.
Reproduction steps
docker pull postgres:17
docker pull --platform=linux/arm64 postgres:17
Observed behavior
-
With the overlay2 storage driver, the second command outputs:
and the image architecture is correctly set to arm64.
-
With the io.containerd.snapshotter.v1 storage driver, the second command outputs:
and the image architecture remains amd64.
You can verify this with:
docker inspect --format='{{.Architecture}}' postgres:17
- Under
overlay2: arm64
- Under
io.containerd.snapshotter.v1: amd64
Impact
As a result, mint build executed in an arm64 environment ends up using the amd64 image instead of the expected arm64 variant.
NOTE: github actions recently switched to docker 29.
Workaround
Switch to overlay2 storage driver (see here).
Docker 29 introduced the
io.containerd.snapshotter.v1storage driver as an alternative tooverlay2(see the [storage driver documentation](https://docs.docker.com/engine/storage/drivers/)).When running
mint buildinside anarm64container, the runtime incorrectly selects theamd64variant of a multi-architecture image.Reproduction steps
Observed behavior
With the
overlay2storage driver, the second command outputs:and the image architecture is correctly set to
arm64.With the
io.containerd.snapshotter.v1storage driver, the second command outputs:and the image architecture remains
amd64.You can verify this with:
docker inspect --format='{{.Architecture}}' postgres:17overlay2:arm64io.containerd.snapshotter.v1:amd64Impact
As a result,
mint buildexecuted in anarm64environment ends up using theamd64image instead of the expectedarm64variant.NOTE: github actions recently switched to docker 29.
Workaround
Switch to
overlay2storage driver (see here).