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

GitLab Runner缓存卷权限设置失败,流水线运行异常求助

问题描述

我在Ubuntu 20.04.5 LTS虚拟机中部署了15.5.1版本的GitLab Runner,Docker版本为22.06.0-beta.0。尝试运行使用node:latest镜像的流水线时,出现如下错误:

ERROR: Preparation failed: adding cache volume: set volume permissions: running permission container

Runner的config.toml配置如下:

[[runners]]
  name = "runner-web"
  url = "my url here"
  id = 8
  token = "Q_9sEzj9y2sPPJTLnGpL"
  token_obtained_at = 2022-12-01T14:09:45Z
  token_expires_at = 0001-01-01T00:00:00Z
  executor = "docker"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]
  [runners.docker]
    tls_verify = false
    image = "docker:latest"
    privileged = true
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/var/run/docker.sock:/var/run/docker.sock","/cache"]
    shm_size = 0

我怀疑是磁盘空间问题?虚拟机磁盘空间情况:根分区/已使用96%,可用空间仅约1.1GB,属于严重不足状态。


解决建议
  • 优先解决磁盘空间不足问题
    根分区可用空间不足2GB是最可能的触发原因,GitLab Runner创建缓存卷时需要足够空间处理权限配置。

    • 清理Docker冗余资源:执行docker system prune -a清理未使用的镜像、容器、网络和卷(注意:此命令会删除未被使用的资源,确认后再执行);
    • 清理系统日志:用journalctl --vacuum-size=1G压缩并清理老旧系统日志;
    • 删除过期构建缓存:手动清理/cache目录下的无用缓存文件,或通过GitLab界面清理项目构建缓存。
  • 调整Runner缓存配置

    • 临时关闭缓存:将config.toml中的disable_cache = false改为disable_cache = true,执行gitlab-runner restart重启服务,测试流水线是否能正常运行;
    • 迁移缓存目录:如果/cache挂载在根分区,可将其改为剩余空间充足的分区路径,修改volumes中的/cache条目后重启Runner。
  • 更换稳定版Docker
    当前使用的Docker是测试版(22.06.0-beta.0),存在兼容性和稳定性风险,建议更换为同系列的稳定版本(如22.06.3),或参考GitLab官方文档选择与Runner 15.5.1兼容的Docker版本。

  • 修复缓存卷权限问题
    若磁盘空间正常后仍报错,可手动清理缓存并重启服务:

    • 删除/cache目录下对应项目的缓存文件夹;
    • 执行gitlab-runner restart重启Runner服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 00:55:33