Кеширование сборки
AgentBox строит шаблон последовательными слоями. Если инструкция и её входные данные не изменились, готовый слой можно использовать повторно.
Размещайте стабильные действия раньше часто меняющихся:
- выберите базовый образ;
- установите системные зависимости;
- скопируйте файл зависимостей и установите пакеты;
- в конце скопируйте исходный код.
skipCache() или skip_cache() отключает кеш для следующей инструкции и всех инструкций после неё. Параметр skipCache: true или skip_cache=True в Template.build отключает кеш слоёв для всей сборки.
mjs
import { Template } from "@abox-dev/sdk";
const templateName = process.env.TEMPLATE_NAME ?? "cached-template";
const template = Template()
.fromBaseImage()
.runCmd("python3 -c 'print(6 * 7)'")
.skipCache()
.runCmd("echo refreshed");
await Template.build(template, templateName, { tags: ["v1"] });
await Template.build(template, templateName, {
tags: ["v2"],
skipCache: true,
});
console.log("Built cached-template:v1 and cached-template:v2");Для copy можно передать forceUpload или force_upload, если локальный файл нужно отправить заново независимо от его содержимого.