有没有办法得到bazel沙盒目录时不支持沙盒?

我在一个docker集装箱里面运行着bazel。 在本地,当我运行没有标志bazel时,我得到以下警告:

警告:您的系统不支持沙箱执行,因此无法保证操作的密封性。 有关更多信息,请参阅http://bazel.build/docs/bazel-user-manual.html#sandboxing 。 您可以通过–ignore_unsupported_sandboxingclosures此警告。

虽然我失去了一些关于气密性的保证,但是在运行我的任何一个genrules之前,Bazel仍然创build了所有的沙箱目录。

然而,在CI中,我没有看到这个警告,而是在尝试沙箱时遇到失败。 所以我通过了--genrule_strategy=standalone来停止崩溃,但是现在我的genrules正在工作区中执行,我绝对不想这样做。

有没有办法让我得到我在本地看到的行为,显式沙盒调用被禁用,因为他们会失败,但正确复制srcs / deps /数据正确的tmp目录创build仍然发生?

要么我可以通过一个标志触发这种行为,或者我可以做的事情,我的系统说服bazel沙盒不支持呢?

你使用什么bazel版本,当它试图使用沙箱时崩溃? 我怀疑c2d773ef4c0916a44fd7936f7bbc22ec55102915将解决这个问题,因为它使检测沙盒是否工作得更加健壮,这就好像它会做你正在寻找的东西。

两种可能的select:

1)要禁用沙箱,– --genrule_strategy=standalone只适用于genrule 。 您还需要禁用其他规则,即添加--spawn_strategy=standalone 。 您可能还需要为特定的规则types禁用它,例如--strategy GoCompile=standalone

2)要使用沙盒,您可以在特权容器中运行Bazel,即使用--privileged标志启动它的容器。 这可能是您的configuration项中的configuration选项。