EC2实例上Jenkins流水线Git Clone失败问题排查求助
排查Jenkins流水线克隆失败&目录不存在问题
咱们先把核心问题理清楚:你看到的cd: /var/lib/jenkins/workspace/MyProjectPipeline-Dev/docker/apache: No such file or directory是后续步骤的报错,根源大概率是代码没成功克隆到Jenkins工作空间,或者仓库里本身就没有这个路径。下面一步步来排查:
1. 先确认Git克隆步骤是否真的执行成功
虽然你在EC2上装了Git,但Jenkins执行克隆的权限、仓库配置可能出了问题:
- 翻一遍流水线的完整日志,找Git克隆相关的输出——比如有没有
Cloning into '/var/lib/jenkins/workspace/MyProjectPipeline-Dev'...的记录,后面有没有权限拒绝、仓库地址错误、网络不通这类报错。 - 检查Jenkins里的Git配置:确保流水线填的仓库URL是对的(HTTPS/SSH要对应),如果用SSH方式,要确认Jenkins用户(
jenkins)的~/.ssh目录下有正确的密钥,且密钥已经添加到Git仓库的授权列表里。 - 手动在EC2上切换到
jenkins用户试试克隆:
这样能直接验证Jenkins用户有没有克隆权限,以及仓库本身能不能正常拉取。su - jenkins git clone <你的仓库URL> /tmp/test-clone
2. 确认仓库里确实存在docker/apache目录
有时候不是克隆失败,而是你误以为仓库里有这个路径,实际没有:
- 直接在本地或者Git仓库的Web界面(比如GitHub/GitLab)检查,确认仓库根目录下真的有
docker/apache这个文件夹。 - 如果仓库里确实没有这个路径,要么修改流水线里的
cd命令,要么把对应的目录添加到仓库中。
3. 检查Jenkins工作空间的权限和状态
AWS EC2上的Jenkins工作空间权限可能异常:
- 查看工作空间目录的权限:
确保所有者是ls -ld /var/lib/jenkins/workspace/MyProjectPipeline-Devjenkins:jenkins,权限至少是755。 - 如果之前流水线失败导致工作空间残留异常文件,可以尝试删除工作空间后重新执行:在Jenkins流水线页面点击「Workspace」→「Delete workspace」,再跑一次流水线。
4. 核对流水线的阶段顺序
有没有可能cd命令的步骤跑在了Git克隆步骤之前?仔细检查你的Jenkinsfile,确保克隆代码的stage是第一个执行的,比如:
pipeline { agent any stages { stage('Clone Repository') { steps { git url: '<你的仓库URL>', branch: 'dev' } } stage('Deploy Apache') { steps { sh 'cd docker/apache && 你的后续部署命令' } } } }
要是克隆步骤在后面,那自然找不到目标目录。
5. 排查EC2实例的网络连通性
EC2实例可能无法访问Git仓库服务器:
- 测试EC2到Git仓库服务器的连通性:
如果不通,检查EC2的安全组规则,确保出站流量允许访问Git仓库的端口(HTTPS是443,SSH是22)。ping <Git仓库服务器域名/IP> # 测试HTTPS端口 curl -I https://<Git仓库域名>
从这几个方向排查,应该能定位到问题所在。
内容的提问来源于stack exchange,提问作者arctic
相关产品推荐
相关产品推荐

