在自定义规则中禁用沙箱

Disable sandbox in custom rule

如何在自定义 Bazel 规则中禁用沙箱?

我希望沙箱始终禁用此规则的每个实例,用户无需执行任何操作。

在规则实施中创建操作时,包括 execution_requirements 包含值为 1no-sandbox 键的字典参数。这会强制操作在沙盒中永远不会 运行。

def _impl(ctx):
  ctx.actions.run_shell(
    outputs = [ctx.outputs.executable],
    command = "..",
    execution_requirements = {
      "no-sandbox": "1",
      "no-cache": "1",
      "no-remote": "1",
      "local": "1",
    },
  )

有关 tags/requirements 的更多信息,请参阅 documentation for common build attributes 上的 tags 属性。