首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用bazel拉取基于架构的图像

如何使用bazel拉取基于架构的图像
EN

Stack Overflow用户
提问于 2021-05-09 22:27:47
回答 1查看 131关注 0票数 0

我正在运行bazel并使用rules_docker的规则container_pull。container_pull具有体系结构属性。在CI和一些开发机器中,架构是amd。在新的m1 macs中,架构是arm。

如何配置bazel在amd机器和arm on arm机器上拉取amd?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-11 11:48:16

最简单的方法是使用两个container_pull规则和select。在你的WORKSPACE

代码语言:javascript
复制
container_pull(
    name = "thing_amd",
    architecture = "amd64",
    <same stuff you have now>
)

container_pull(
    name = "thing_arm",
    architecture = "arm",
    <same stuff you have now>
)

然后在一些BUILD文件中:

代码语言:javascript
复制
config_setting(
    name = "k8",
    constraint_values = ["@platforms//cpu:x86_64"],
)

config_setting(
    name = "arm",
    constraint_values = ["@platforms//cpu:arm"],
)

alias(
    name = "thing",
    actual = select({
        ":k8": "@thing_amd//image",
        ":arm": "@thing_arm//image",
    }),
)

如果您想要消除重复数据(尤其是当您有两个以上的CPU时),macros非常有用。创建一个.bzl文件,其中所有的CPU都在一个变量中,然后创建一个宏,用于创建所有的container_pull存储库(从WORKSPACE执行load+call操作),以及另一个宏,用于创建config_setting和从该alias文件执行load+call操作的CPU。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67458821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档