2017-05-02 1 views
0

바젤을 도커 컨테이너 안에 넣고 있습니다.샌드 박스가 지원되지 않는 경우 bazel에서 샌드 박스 디렉토리를 사용하도록 할 수 있습니까?

경고 : 샌드 박스 실행이 시스템에서 지원되지 않으며, 따라서 행동의 밀폐성을 보장 할 수 없습니다 내가 플래그없이 bazel을 실행하면 로컬, 나는 다음과 같은 경고를 얻을. 자세한 내용은 http://bazel.build/docs/bazel-user-manual.html#sandboxing을 참조하십시오. --ignore_unsupported_sandboxing을 통해이 경고를 끌 수 있습니다.

그리고 밀폐성에 대한 보장이 없지만 Bazel은 내 genrules을 실행하기 전에 모든 샌드 박스 디렉토리를 만듭니다.

그러나 CI에서는 경고를 보지 않고 대신 샌드 박스 만들기를 시도 할 때 오류가 발생합니다. 그래서 나는 충돌을 막기 위해 --genrule_strategy=standalone를 건네 줬습니다.하지만 지금은 제 작업이 올바른 작업 공간에서 실행되고 있습니다. 나는 확실히 원하지 않습니다.

내가 로컬로보고있는 동작을 얻을 수있는 방법이 있습니까? 명시 적 샌드 박싱 호출이 실패하지만 srcs/deps/data를 사용하여 tmp 디렉토리를 만들면 올바르게 복사됩니다.

행동을 유발하기 위해 바젤에 전달할 수있는 플래그 또는 샌드 박스가 지원되지 않는 바젤을 설득하기 위해 시스템에 할 수있는 플래그 중 하나가 있습니까?

답변

1

샌드 박싱을 사용하려고 할 때 사용하는 bazel 버전은 무엇입니까? 나는 c2d773ef4c0916a44fd7936f7bbc22ec55102915이 그 문제를 해결할 것이라고 생각합니다. 왜냐하면 샌드 박스가 훨씬 더 강력하게 작동하는지 여부를 탐지 할 수 있기 때문입니다.

+0

저는 apt-get와 함께 설치되는 최신 릴리스 버전을 사용하고 있습니다. 0.4.5 게시 한 수정 프로그램이없는 것 같습니다. 바젤 (Bazel)은 얼마나 자주 발매됩니까? – macrael

+0

그들은 일반적으로 매월 또는 두 달입니다. 즉 다음 달을 기약합니다. [# 2692] (https://github.com/bazelbuild/bazel/issues/2692)는 0.5.0의 릴리스 버그이며 현재 진행 상황이 진행 중입니다. –

1

두 가지 가능한 옵션 :

1) 샌드 박스를 해제하려면, --genrule_strategy=standalonegenrule의 적용됩니다. 다른 규칙 (예 : --spawn_strategy=standalone)에 대해서도 사용 중지해야합니다. 특정 규칙 유형 (예 : --strategy GoCompile=standalone.

2) 샌드 박스를 사용하려면 Bazel을 특권 컨테이너 (예 : --privileged 플래그로 시작)에서 실행할 수 있습니다. 이것은 CI의 구성 옵션 일 수 있습니다.

+0

--genrule_strategy & --spawn_strategy는 모든 것을 다루어야합니다. 그러나 제 질문은 그들을 부르는 것을 피하는 것입니다. – macrael