我不希望用户通过在其内核中禁用用户名称空间或通过其他机制来意外禁用沙箱。我希望能够相信他们的构建结果。如何通过标志强制沙箱?
(我发现测试这个的最简单的方法是暂时移动/ bin / true,并确认Bazel拒绝构建任何东西)
答案 0 :(得分:2)
您可以指定一个明确的Spawn策略,而不是依赖于"选择最好的"算法:
bazel build --spawn_strategy=linux-sandbox
如果用户命名空间不可用,这将使构建失败并显示错误。在macOS上,策略的名称是" darwin-sandbox"。
如果您正在构建Java代码,您可能还想要启用Worker沙盒(--worker_sandboxing
)或禁用持久工作器功能,并在更严格的沙箱(--strategy=Javac=linux-sandbox
)内编译Java。