RMI-PACTA / actions

Actions for GitHub workflows
4 stars 0 forks source link

multi-arch build occurs even when only one platform is specified #104

Open cjyetman opened 1 month ago

cjyetman commented 1 month ago

workflow.data.preparation explicitly specifies building only linux/amd64 here https://github.com/RMI-PACTA/workflow.data.preparation/blob/6001fa51451c0312bf70d3387d1b17dd29236139/.github/workflows/docker.yml#L24-L27

yet the build still appears to create multi-arch builds, e.g. here (OS/Arch tab) https://github.com/RMI-PACTA/workflow.data.preparation/pkgs/container/workflow.data.preparation/246792195?tag=pr-240

I believe this is why I get an error when running docker pull on a macOS/arm64 machine, because by default it looks for a matching arch image, but the option of having this "unknown" arch available seems to confuse things and it doesn't simply pull the linux/amd64 build since it's the only one available (which would be the preferable behavior).

cjrmi@Mac ~ % docker pull ghcr.io/rmi-pacta/workflow.data.preparation:pr-240
Error response from daemon: no match for platform in manifest: not found
AlexAxthelm commented 1 month ago

Hmmm. Not sure how we would best address this, since the unknown/unknown is coming from the build process.

Basically when building a multi-arch image, it builds n "normal" images, and then wraps them all in the unknown/unknown image, which tells the downloading client which SHA to pull.

It would be possible to have the process build a "normal" image, but I don't have a clean way to make that happen in the current pipeline (automatically) when n = 1.