skaffold icon indicating copy to clipboard operation
skaffold copied to clipboard

Docker image published in gcr.io is not compatible with linux/arm64

Open josephpage opened this issue 1 year ago • 1 comments

Hello,

My current approach to using Skaffold relies on the official Docker image gcr.io/k8s-skaffold/skaffold. Unfortunately, I recently discovered that it is not compatible with linux/arm64, as it is not published with a multi-arch manifest.

$ docker pull --platform=linux/arm64 gcr.io/k8s-skaffold/skaffold:latest
latest: Pulling from k8s-skaffold/skaffold
Digest: sha256:a641cfa6b9bb40aa5793d4c48d184debb1ebe9e98db58cc1d89c769805d17769
Status: Image is up to date for gcr.io/k8s-skaffold/skaffold:latest
image with reference gcr.io/k8s-skaffold/skaffold:latest was found but does not match the specified platform: wanted linux/arm64, actual: linux/amd64

I'd love the official image to be multi-arch!

Our use case today is as follows: we are building a custom image that includes code-server to enable development in a browser-based IDE. As part of this, we aim to provide a comprehensive set of standard tools commonly used in our workflows, including Skaffold.

Simplified, here’s what the Dockerfile for this image looks like:

FROM gcr.io/k8s-skaffold/skaffold:v2.14.1 AS skaffold

FROM ghcr.io/coder/code-server:latest
COPY --from=skaffold /usr/bin/skaffold /usr/local/bin

That's works very well for amd64. Today, we would like to run these development environments on ARM servers. However, Skaffold is one of the few tools that do not readily provide an official ARM64-compatible image.

Many thanks !

josephpage avatar Feb 21 '25 15:02 josephpage

Hey @briandealwis & @MarlonGamez

I was investigating a bit the history of the Dockerfile to see if we could move this forward and you seem to be the last one to look at this in https://github.com/GoogleContainerTools/skaffold/pull/6736. It seems all of the tools are now cross-compiled and ready.

Cross compiling in golang is easy and can be made but it seems the process of generating the Docker images themselves is not done byt github actions but internally in google.

Is there still some limitation internally to not provide arm64 images somehow? Happy to contribute a MR to make it happen modifying the Makefile to turn this into reality.

In my company we use skaffold all the time and is a main limitation into switching to arm64 spot instances for CI.

tete17 avatar Apr 11 '25 18:04 tete17