Skip to content

Multiarch build issue with docker 29 #174

@akornatskyy

Description

@akornatskyy

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:

    Downloaded newer image
    

    and the image architecture is correctly set to arm64.

  • With the io.containerd.snapshotter.v1 storage driver, the second command outputs:

    Image is up to date
    

    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).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions