Skip to content

Building and testing rules_docker on Apple Silicon #2036

@linzhp

Description

@linzhp

🚀 feature request

Relevant Rules

Description

Currently, the Go targets in rules_docker cannot build on Apple Silicon machines:

bazel build @io_bazel_rules_docker//container/go/...                        
DEBUG: /private/var/tmp/_bazel_zplin/d6323f9e3146540840037c805ccd73ff/external/bazel_toolchains/rules/rbe_repo/version_check.bzl:68:14: 
Current running Bazel is ahead of bazel-toolchains repo. Please update your pin to bazel-toolchains repo in your WORKSPACE file.
DEBUG: /private/var/tmp/_bazel_zplin/d6323f9e3146540840037c805ccd73ff/external/bazel_toolchains/rules/rbe_repo/checked_in.bzl:125:14: buildkite_config not using checked in configs; Bazel version 5.0.0 was picked/selected but no checked in config was found in map {"0.20.0": ["8.0.0"], "0.21.0": ["8.0.0"], "0.22.0": ["8.0.0", "9.0.0"], "0.23.0": ["8.0.0", "9.0.0"], "0.23.1": ["8.0.0", "9.0.0"], "0.23.2": ["9.0.0"], "0.24.0": ["9.0.0"], "0.24.1": ["9.0.0"], "0.25.0": ["9.0.0"], "0.25.1": ["9.0.0"], "0.25.2": ["9.0.0"], "0.26.0": ["9.0.0"], "0.26.1": ["9.0.0"], "0.27.0": ["9.0.0"], "0.27.1": ["9.0.0"], "0.28.0": ["9.0.0"], "0.28.1": ["9.0.0"], "0.29.0": ["9.0.0"], "0.29.1": ["9.0.0", "10.0.0"], "1.0.0": ["9.0.0", "10.0.0"], "1.0.1": ["10.0.0"], "1.1.0": ["10.0.0"], "1.2.0": ["10.0.0"], "1.2.1": ["10.0.0"], "2.0.0": ["10.0.0"], "2.1.0": ["10.0.0"], "2.1.1": ["10.0.0", "11.0.0"], "2.2.0": ["11.0.0"], "3.0.0": ["11.0.0"], "3.1.0": ["11.0.0"], "3.2.0": ["11.0.0"], "3.3.0": ["11.0.0"], "3.3.1": ["11.0.0"], "3.4.1": ["11.0.0"], "3.5.0": ["11.0.0"], "3.5.1": ["11.0.0"], "3.6.0": ["11.0.0"], "3.7.0": ["11.0.0"], "3.7.1": ["11.0.0"], "3.7.2": ["11.0.0"], "4.0.0": ["11.0.0"]}
ERROR: /Users/zplin/go/src/github.com/bazelbuild/rules_docker/container/go/cmd/digester/BUILD:31:10: While resolving toolchains for target //container/go/cmd/digester:digester: no matching toolchains found for types @io_bazel_rules_go//go:toolchain
ERROR: Analysis of target '//container/go/cmd/digester:digester' failed; build aborted: 
INFO: Elapsed time: 0.152s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (13 packages loaded, 0 targets configured)

As a result, end-to-end tests cannot run on Apple Silicon either:

testing/e2e.sh test_container_pull_with_auth
"docker rmi" requires at least 1 argument.
See 'docker rmi --help'.

Usage:  docker rmi [OPTIONS] IMAGE [IMAGE...]

Remove one or more images
9639f55a2c962719389fc290439ec41b9f583d7322397f20b1485ed47e5f2b86
Error: No such image: bazel/image:image
ERROR: /private/var/tmp/_bazel_zplin/aa79edc14e712d12745728305b89bbcc/external/io_bazel_rules_docker/container/go/cmd/join_layers/BUILD:19:10: While resolving toolchains for target @io_bazel_rules_docker//container/go/cmd/join_layers:join_layers: no matching toolchains found for types @io_bazel_rules_go//go:toolchain
ERROR: Analysis of target '@io_bazel_rules_docker//tests/container:push_test' failed; build aborted: 
INFO: Elapsed time: 2.059s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (12 packages loaded, 669 targets configured)
FAILED: Build did NOT complete successfully (12 packages loaded, 669 targets configured)

Describe the solution you'd like

Probably involving upgrading rules_go and some bug fixing in testing/e2e.sh.

Describe alternatives you've considered

Have you considered any alternative solutions or workarounds?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Can Close?Will close in 30 days unless there is a comment indicating why not

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions