我如何要求沙箱?
How do I require the sandbox?
我不希望用户通过在内核中禁用用户名称空间或通过其他机制意外禁用沙箱。我希望能够相信他们的构建结果。如何通过标志强制启用沙箱?
(我发现最简单的测试方法是暂时将 /bin/true 移动到其他地方并验证 Bazel 拒绝构建任何东西)
您可以指定一个明确的 Spawn 策略,而不是依赖 "pick the best available" 算法:
bazel build --spawn_strategy=linux-sandbox
如果用户命名空间不可用,这将使构建失败并出现错误。在 macOS 上,策略的名称是 "darwin-sandbox".
如果您正在构建 Java 代码,您可能还想启用 Worker 沙箱 (--worker_sandboxing
) 或禁用持久性 worker 功能并在更严格的沙箱中编译 Java (--strategy=Javac=linux-sandbox
).
我不希望用户通过在内核中禁用用户名称空间或通过其他机制意外禁用沙箱。我希望能够相信他们的构建结果。如何通过标志强制启用沙箱?
(我发现最简单的测试方法是暂时将 /bin/true 移动到其他地方并验证 Bazel 拒绝构建任何东西)
您可以指定一个明确的 Spawn 策略,而不是依赖 "pick the best available" 算法:
bazel build --spawn_strategy=linux-sandbox
如果用户命名空间不可用,这将使构建失败并出现错误。在 macOS 上,策略的名称是 "darwin-sandbox".
如果您正在构建 Java 代码,您可能还想启用 Worker 沙箱 (--worker_sandboxing
) 或禁用持久性 worker 功能并在更严格的沙箱中编译 Java (--strategy=Javac=linux-sandbox
).