Как я могу заставить bazel использовать внешнее хранилище при сборке?

При создании определенного кода с помощью bazel мне не хватает места для хранения. Я бы хотел, чтобы Bazel хранил свои вещи на USB-накопителе, а не в моей папке ~/.cache. Как я могу сказать Базелю сделать это?


person Matt Kleinsmith    schedule 23.11.2016    source источник


Ответы (2)


Используйте флаг --output_user_root.

Пример:

bazel --output_user_root=/path/to/directory build //foo:bar
person László    schedule 30.03.2017
comment
При попытке использовать это решение на экземпляре AWS я столкнулся с предупреждением вроде ПРЕДУПРЕЖДЕНИЕ: база вывода '/workspace/bazel/.cache/0d1ff2dcdcd5fe715305037694b909f9' находится в NFS. Это может привести к неожиданным сбоям и неопределенному поведению. - person Leo5188; 28.05.2019
comment
эх, теперь ссылка возвращает 404 страница не найдена :( - person Smankusors; 04.08.2020

Вы можете изменить каталог outputRoot, изменив переменную $TEST_TMPDIR.

export TEST_TMPDIR=/path/to/directory

Из документов Bazel:

Каталог outputRoot~/.cache/bazel. (Если не установлен $TEST_TMPDIR, как в тесте самого bazel, в этом случае вместо этого используется этот каталог.)

person Matt Kleinsmith    schedule 23.11.2016
comment
Установка TEST_TMPDIR заставляет Bazel полагать, что он работает внутри теста, и сильно ограничивает использование ресурсов, замедляя сборку. - person László; 18.04.2019
comment
да благословит тебя бог Мэтт! - person Cupitor; 25.02.2020