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

Windows下GitLab Shell Runner配置Bash时锁配置文件失败问题

问题排查与解决方案

核心原因

你遇到的Git锁文件错误,本质是GitLab Runner(Windows原生程序)与Bash环境的路径格式不兼容:

  • GitLab Runner作为Windows进程,仅识别Windows风格路径(如C:\Gitlab-Runner\builds\),但你配置了Cygwin风格的/cygdrive/c/...路径
  • 当Runner调用Windows版本的Git时,Git无法解析Cygwin路径,导致锁文件操作失败,即使文件实际存在也会抛出错误

解决步骤

1. 修改config.toml的路径配置

将builds_dir和cache_dir改为Windows原生路径,支持两种写法:

  • 双反斜杠转义格式:
concurrent = 1
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "Window's VM"
  url = <gitlab url>
  token = <token>
  executor = "shell"
  shell = "bash"
  builds_dir="C:\\Gitlab-Runner\\builds\\"
  cache_dir="C:\\Gitlab-Runner\\cache\\"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]
  • 正斜杠格式(推荐,无需转义):
concurrent = 1
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "Window's VM"
  url = <gitlab url>
  token = <token>
  executor = "shell"
  shell = "bash"
  builds_dir="C:/Gitlab-Runner/builds/"
  cache_dir="C:/Gitlab-Runner/cache/"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]

2. 修复.gitlab-ci.yml中的路径写法

Bash环境下反斜杠是转义字符,需将Windows风格路径改为Unix风格:

stages:
  - build

run-script:
  stage: build
  tags:
    - sweet
  script:
    - ./script0.sh -s ./another_dir/argument_file
    - ./script1.sh

3. 重启GitLab Runner服务

在管理员权限的Windows命令提示符中执行:

gitlab-runner stop
gitlab-runner start

也可通过Windows服务管理器直接重启gitlab-runner服务

4. 路径映射验证(可选)

若使用Git Bash,可在Bash中执行以下命令,确认路径映射正常:

cd /cygdrive/c/Gitlab-Runner/builds/
ls

能正常列出目录文件则说明映射无问题


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 11:16:03