Docker 当不支持沙箱时,有没有办法让bazel使用沙箱目录?
我在docker集装箱内运行bazel。在本地,当我运行没有标志的bazel时,会收到以下警告: 警告:您的系统不支持沙盒执行,因此无法保证操作的密封性。有关更多信息,请参阅。您可以通过--ignore_unsupported_沙盒关闭此警告 虽然我对气密性失去了一些保证,但Bazel仍然在运行任何genrules之前创建所有沙盒目录 然而,在CI中,我没有看到那个警告,而是在尝试沙箱时失败。所以我通过了Docker 当不支持沙箱时,有没有办法让bazel使用沙箱目录?,docker,go,circleci,bazel,Docker,Go,Circleci,Bazel,我在docker集装箱内运行bazel。在本地,当我运行没有标志的bazel时,会收到以下警告: 警告:您的系统不支持沙盒执行,因此无法保证操作的密封性。有关更多信息,请参阅。您可以通过--ignore_unsupported_沙盒关闭此警告 虽然我对气密性失去了一些保证,但Bazel仍然在运行任何genrules之前创建所有沙盒目录 然而,在CI中,我没有看到那个警告,而是在尝试沙箱时失败。所以我通过了--genrule\u strategy=standalone来阻止崩溃,但是现在我的gen
--genrule\u strategy=standalone
来阻止崩溃,但是现在我的genrules正在工作区中执行,这是我绝对不想要的
有没有一种方法可以让我在本地看到显式沙盒调用被禁用的行为,因为它们会失败,但是使用正确复制的srcs/deps/数据创建tmp目录仍然会发生
我可以向bazel传递一个标志来触发该行为,或者我可以对我的系统做些什么来让bazel相信那里不支持沙箱?您使用的是哪个bazel版本,当它尝试使用沙箱时会崩溃?我怀疑它会解决这个问题,因为它使沙盒是否工作的检测更加健壮,这似乎会满足您的要求。您使用的是哪个bazel版本,当它尝试使用沙盒时会崩溃?我怀疑它会解决这个问题,因为它使沙盒是否工作的检测更加健壮,这似乎会满足您的需求。两种可能的选择: 1) 要禁用沙盒,
--genrule\u strategy=standalone
仅适用于genrule
s。您还需要为其他规则禁用它,即添加--spawn\u strategy=standalone
。您可能还需要为特定的规则类型禁用它,例如--strategy GoCompile=standalone
2) 要使用沙箱,可以在特权容器内运行Bazel,即使用--privileged
标志启动其容器。这可能是CI中的一个配置选项。两个可能的选项:
1) 要禁用沙盒,--genrule\u strategy=standalone
仅适用于genrule
s。您还需要为其他规则禁用它,即添加--spawn\u strategy=standalone
。您可能还需要为特定的规则类型禁用它,例如--strategy GoCompile=standalone
2) 要使用沙箱,可以在特权容器内运行Bazel,即使用
--privileged
标志启动其容器。这可能是CI中的一个配置选项。我使用的是最新发布的版本,与apt get一起安装。0.4.5,看起来它没有您发布的修复程序。bazel的发布频率通常是多少?通常是每一两个月发布一次,这意味着下一次发布大约在现在。是0.5.0的发布错误,现在看起来有积极的进展。我使用的是最新发布的版本,安装了apt get。0.4.5,看起来它没有您发布的修复程序。bazel的发布频率通常是多少?通常是每一两个月发布一次,这意味着下一次发布大约在现在。是0.5.0的发行版bug,现在看起来有了积极的进展。--genrule_策略&--spawn_策略应该涵盖所有内容。但我的问题是避免给他们打电话。--genrule_策略&--spawn_策略应该涵盖一切。但我的问题是避免给他们打电话。