Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

go_image always builds for linux/amd64 irrespective of host platform #2264

Open
c16a opened this issue Jul 30, 2023 · 1 comment
Open

go_image always builds for linux/amd64 irrespective of host platform #2264

c16a opened this issue Jul 30, 2023 · 1 comment
Labels
Can Close? Will close in 30 days unless there is a comment indicating why not

Comments

@c16a
Copy link

c16a commented Jul 30, 2023

🐞 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
Copy link

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 github-actions bot added the Can Close? Will close in 30 days unless there is a comment indicating why not label Dec 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Can Close? Will close in 30 days unless there is a comment indicating why not
Projects
None yet
Development

No branches or pull requests

1 participant