You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将GitLab CI/CD的cache挂载到Docker容器中实现跨流水线复用?

GitLab CI Docker容器缓存复用配置方案

你现有的配置已经完成了基础缓存规则定义,要实现容器内可写、跨流水线复用,补充以下配置即可:

  • 显式指定缓存策略为pull-push(默认值也是该配置,显式声明可避免全局规则覆盖),作业执行时会先拉取已有缓存,执行完成后将更新的缓存内容上传复用:
dependency-check:
  image: maven:3-openjdk-11
  stage: verify
  cache:
    - key: downloads
      paths:
        - ./downloads
      policy: pull-push
  script:
    # 可添加以下命令验证缓存目录可写
    - mkdir -p ./downloads && echo "test cache" > ./downloads/test && ls ./downloads
    # 其余原有构建逻辑
    - ...
  ...
  • 如果需要整个流水线所有作业都复用该缓存,将缓存配置提至全局层级即可,无需每个作业重复定义:
# 全局缓存配置,所有作业默认继承
cache:
  - key: downloads
    paths:
      - ./downloads
    policy: pull-push

dependency-check:
  image: maven:3-openjdk-11
  stage: verify
  script:
    - ...
  ...
  • 如果需要跨不同分支复用缓存,可直接使用固定key值;如果需要按分支隔离缓存,修改key为downloads-$CI_COMMIT_REF_SLUG即可实现每个分支独立缓存。

注意:GitLab Runner Docker执行器默认会自动挂载作业工作目录到容器内,工作目录下的./downloads路径默认拥有读写权限,无需额外配置挂载规则。如果遇到缓存不生效的情况,先检查Runner配置是否有禁用缓存、覆盖cache规则的相关设置。

内容的提问来源于stack exchange,提问作者Datz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 01:27:04