From 587bbf20d3df2faee28d78384962c338d52cd97c Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Fri, 3 Mar 2023 06:38:42 -0500 Subject: [PATCH] [v9.3.x] Docker Build: Use `tonistiigi/binfmt` image for cross compilation (#64116) Docker Build: Use `tonistiigi/binfmt` image for cross compilation (#64108) * Change docker image used for cross-compilation * Replace fmt.Println with log.Println * Add specific tag for docker image (cherry picked from commit b42fd92fad7c4e826cb6ae9ed360952bbc9a87a9) Co-authored-by: Dimitris Sotirakis --- pkg/build/docker/init.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pkg/build/docker/init.go b/pkg/build/docker/init.go index 658bba02f10..c7262613b2b 100644 --- a/pkg/build/docker/init.go +++ b/pkg/build/docker/init.go @@ -10,6 +10,9 @@ import ( // AllArchs is a list of all supported Docker image architectures. var AllArchs = []string{"amd64", "armv7", "arm64"} +// emulatorImage is the docker image used as the cross-platform emulator +var emulatorImage = "tonistiigi/binfmt:qemu-v7.0.0" + // Init initializes the OS for Docker image building. func Init() error { // Necessary for cross-platform builds @@ -18,11 +21,14 @@ func Init() error { } // Enable execution of Docker images for other architectures + //nolint:gosec cmd := exec.Command("docker", "run", "--privileged", "--rm", - "docker/binfmt:a7996909642ee92942dcd6cff44b9b95f08dad64") + emulatorImage, "--install", "all") output, err := cmd.CombinedOutput() if err != nil { return fmt.Errorf("failed to enable execution of cross-platform Docker images: %w\n%s", err, output) } + log.Println("emulators have been installed successfully!") + return nil }