用途:为每次会话都会重置的临时容器提供持久化的环境覆盖层。它解析一个 Containerfile(Dockerfile 子集)来声明所需环境,把构建结果缓存为 GitHub Releases 中的 tarball,后续启动时从缓存恢复,用一次拉取替代多次安装。
主要能力:支持 ENV、RUN(含 apt-get、uv pip install、pip install)、FETCH(从 URL 或 github:user/repo@ref 拉取文件)、WORKDIR、SNAPSHOT 等指令;FROM、EXPOSE、CMD 等 Dockerfile 指令被忽略。v0.2.0+ 支持多层组合,每层独立缓存,缓存标签为 layer-<name>-<hash>,缓存键是 Containerfile 内容的 SHA-256。还提供 uv shim,可把临时安装回写到 Containerfile。
使用方式:通过 Python 调用 ContainerLayer(containerfile_path, cache_repo, gh_token).restore_or_build(),或使用 CLI:python -m scripts.cli restore /path/to/Containerfile --repo user/cache-repo。多层组合用 compose 或 python -m scripts.cli compose。修改后调用 layer.build_and_push() 重建缓存。需配置 GH_TOKEN 环境变量。
适用场景:从启动脚本调用,为下一会话准备环境。
限制:它不是 Docker 排障工具,不用于管理运行中的容器或会话启动钩子;构建失败应查看构建日志。官方未提供收费、价格或平台信息。