Перейти к содержимому

Кеширование сборки

AgentBox строит шаблон последовательными слоями. Если инструкция и её входные данные не изменились, готовый слой можно использовать повторно.

Размещайте стабильные действия раньше часто меняющихся:

  1. выберите базовый образ;
  2. установите системные зависимости;
  3. скопируйте файл зависимостей и установите пакеты;
  4. в конце скопируйте исходный код.

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, если локальный файл нужно отправить заново независимо от его содержимого.