rules_docker icon indicating copy to clipboard operation
rules_docker copied to clipboard

go_image always builds for linux/amd64 irrespective of host platform

Open c16a opened this issue 2 years ago • 1 comments

🐞 bug report

Affected Rule

The issue is caused by the rule: rules_docker and go_image (possibly other language-specific rules as well)

Is this a regression?

Not sure

Description

When running a go_image target from a darwin/arm64 machine (M1 Pro CPU), the target container image is always built for linux/amd64. Below are key snippets


load("@io_bazel_rules_go//go:def.bzl", "go_binary")
load("@io_bazel_rules_docker//go:image.bzl", "go_image")

go_binary(
    name = "binary",
    srcs = ["main.go"],
    goarch = "arm64",
    goos = "linux",
)

go_image(
    name = "image",
    srcs = ["main.go"],
    goarch = "arm64",
    goos = "linux",
)

🔬 Minimal Reproduction

https://github.com/c16a/rules-docker-arm64-reproduction

🔥 Exception or Error

There is no build error, but when the image is loaded onto the Docker daemon, it shows the following warning


WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested

🌍 Your Environment

Operating System:

  
macOS Ventura 13.4.1
  

Output of bazel version:

  
Bazelisk version: development
Build label: 6.3.0
Build target: bazel-out/darwin_arm64-opt/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar
Build time: Mon Jul 24 17:26:34 2023 (1690219594)
Build timestamp: 1690219594
Build timestamp as int: 1690219594
  

Rules_docker version:


v0.25.0

Docker version


Client:
 Cloud integration: v1.0.35
 Version:           24.0.2
 API version:       1.43
 Go version:        go1.20.4
 Git commit:        cb74dfc
 Built:             Thu May 25 21:51:16 2023
 OS/Arch:           darwin/arm64
 Context:           desktop-linux

Server: Docker Desktop 4.21.1 (114176)
 Engine:
  Version:          24.0.2
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.4
  Git commit:       659604f
  Built:            Thu May 25 21:50:59 2023
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          1.6.21
  GitCommit:        3dce8eb055cbb6872793272b4f20ed16117344f8
 runc:
  Version:          1.1.7
  GitCommit:        v1.1.7-0-g860f061
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

c16a avatar Jul 30 '23 12:07 c16a

This issue has been automatically marked as stale because it has not had any activity for 180 days. It will be closed if no further activity occurs in 30 days. Collaborators can add an assignee to keep this open indefinitely. Thanks for your contributions to rules_docker!

github-actions[bot] avatar Dec 10 '24 02:12 github-actions[bot]