islandora/cacheBuildkit Cache Repository 镜像是一个基于 Buildkit 的缓存服务镜像,专为 GitHub Actions 环境设计,用于存储和管理 Docker 构建过程中的中间层缓存。通过持久化构建缓存,该镜像可有效减少重复构建步骤(如依赖下载、编译过程等)的执行频率,显著提升 GitHub Actions 中 Docker 镜像构建的效率。
min/max)、有效期设置,平衡缓存效率与存储占用。通过 docker run 命令直接启动缓存服务,默认使用本地文件系统存储缓存:
bashdocker run -d \ --name buildkit-cache \ -v /path/to/local/cache:/cache \ # 本地缓存目录挂载(持久化缓存) -e BUILDKIT_CACHE_REPO=local:///cache \ # 缓存仓库地址(本地路径) -e CACHE_MODE=max \ # 缓存模式(max:保留所有层;min:仅保留最终层) -p 8080:8080 \ # 可选:暴露缓存服务端口(如需远程访问) myregistry/buildkit-cache-repo:latest
在 GitHub Actions 工作流中,通过卷挂载或服务依赖方式集成缓存服务,以下为典型 workflow 配置:
yaml# .github/workflows/build.yml name: Build Docker Image with Cache on: [push, pull_request] jobs: build: runs-on: ubuntu-latest services: buildkit-cache: image: myregistry/buildkit-cache-repo:latest volumes: - buildkit-cache-volume:/cache # 使用命名卷持久化缓存 env: BUILDKIT_CACHE_REPO: local:///cache CACHE_MODE: max steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 with: driver-opts: | image=myregistry/buildkit-cache-repo:latest cache-repo=local:///cache # 指向缓存服务的本地路径(需与服务卷一致) - name: Build and push uses: docker/build-push-action@v5 with: context: . push: false cache-from: type=registry,ref=local:///cache # 从缓存仓库拉取缓存 cache-to: type=registry,ref=local:///cache,mode=max # 推送缓存到仓库 volumes: buildkit-cache-volume: # 命名卷用于跨 job 持久化缓存(GitHub Actions 中卷生命周期与 runner 一致)
通过 docker-compose.yml 定义缓存服务及构建环境,适用于本地开发或自托管 CI 环境:
yaml# docker-compose.yml version: '3.8' services: buildkit-cache: image: myregistry/buildkit-cache-repo:latest volumes: - ./buildkit-cache:/cache # 本地目录挂载(相对路径) environment: - BUILDKIT_CACHE_REPO=local:///cache - CACHE_MODE=max - CACHE_TTL=7d # 缓存有效期(默认无限制,可选:7d=7天,30m=30分钟) restart: unless-stopped builder: image: docker:dind depends_on: - buildkit-cache volumes: - /var/run/docker.sock:/var/run/docker.sock - ./:/app # 项目代码挂载 environment: - DOCKER_BUILDKIT=1 # 启用 Buildkit - BUILDKIT_CACHE_REPO=local:///cache # 指向缓存服务的缓存目录 command: sh -c "cd /app && docker build --cache-from=type=registry,ref=local:///cache --cache-to=type=registry,ref=local:///cache,mode=max -t myapp:latest ."
| 参数名 | 描述 | 默认值 | 示例 |
|---|---|---|---|
BUILDKIT_CACHE_REPO | 缓存仓库地址,格式:存储类型://路径 | local:///cache | s3://my-bucket/buildkit-cache(S3 存储) |
CACHE_MODE | 缓存模式:min(仅保留最终层)、max(保留所有中间层) | max | min |
STORAGE_BACKEND | 存储后端类型:local(本地文件)、s3(S3 兼容对象存储)、nfs(NFS) | local | s3 |
CACHE_TTL | 缓存有效期,超过时间的缓存将被清理(格式:30m/2h/7d) | 不限制 | 7d |
S3_ENDPOINT | S3 存储后端地址(当 STORAGE_BACKEND=s3 时必填) | - | [***] |
S3_ACCESS_KEY | S3 访问密钥(当 STORAGE_BACKEND=s3 时必填) | - | AKIAEXAMPLE |
S3_SECRET_KEY | S3 密钥(当 STORAGE_BACKEND=s3 时必填) | - | secret123 |
| 挂载路径 | 描述 | 建议配置 |
|---|---|---|
/cache | 本地缓存存储目录(默认) | 挂载宿主机目录或命名卷,确保缓存持久化 |
/etc/buildkit | Buildkit 配置文件目录 | 如需自定义 Buildkit 配置(如镜像仓库认证),可挂载本地配置文件 |
CACHE_TTL,缓存将持续累积,建议定期清理过期缓存或配置自动清理策略(如通过 cron 任务)。max 模式缓存体积较大),确保存储后端有足够容量。docker buildx 启用)。



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务