GitLab CI首次运行失败:Job failed: prepare environment: exit status 1求助
GitLab CI 流水线准备环境失败(exit status 1)排查方案
核心排查方向
针对你遇到的prepare environment: exit status 1错误,重点从以下几个方向检查:
1. Runner 标签匹配问题
你的build任务指定了tags: - gitlab-server,先确认:
- 服务器上的GitLab Runner是否配置了该标签?执行命令查看:
确保输出里的Runner标签和sudo gitlab-runner list.gitlab-ci.yml中的完全一致(大小写敏感)。 - 若Runner无对应标签,要么修改yaml中的标签,要么给Runner添加标签:
sudo gitlab-runner register --tag-list "gitlab-server" --non-interactive --url <你的GitLab地址> --registration-token <你的注册令牌> --executor shell
2. Runner 执行权限问题
如果使用shell执行器,检查Runner运行用户的权限:
- 默认Runner运行用户是
gitlab-runner,切换到该用户测试项目目录访问权限:
若权限不足,要么调整项目目录权限,要么修改sudo su - gitlab-runner cd <项目克隆路径> ls -l/etc/gitlab-runner/config.toml中的user字段更换运行用户。
3. Runner 基础环境问题
检查Runner所在服务器的基础依赖:
- 确认Git已安装:
未安装则执行git --versionsudo apt install git安装。 - 检查Runner服务状态:
服务异常则重启:sudo systemctl status gitlab-runnersudo systemctl restart gitlab-runner
4. 查看完整流水线日志
直接进入GitLab流水线失败的任务页面,展开prepare environment阶段的所有日志输出,里面会有更具体的错误细节(如仓库克隆失败、权限拒绝等),这是定位问题最直接的方式。
临时测试方案
若以上排查无头绪,可先简化.gitlab-ci.yml,去掉标签限制用默认Runner测试:
stages: - build build: stage: build script: - whoami - pwd - ls -l
如果简化版本能运行,说明问题出在标签匹配或指定Runner的配置上。
内容的提问来源于stack exchange,提问作者Nhật Vũ Quang
相关产品推荐
相关产品推荐

