在执行CICD的时候,爆了下面两个错误
.gitlab-ci.yml 文件如下:
stages:
- build
- package
# 构建 Job
build:
stage: build
tags:
- diaoTag
script:
- echo "=============编译构建任务=============="
# 打包
package:
stage: package
tags:
- diaoTag
script:
- echo "==============打包任务============="
- echo "==============启动项目:开始============="
- echo "==============git目录============="
- pwd
- java -jar /root/project/spring-boot-04-web-restfulcrud-0.0.1-SNAPSHOT.jar
- echo "==============启动项目:完成============="
报错1:
Error: Unable to access jarfile /root/project/spring-boot-04-web-restfulcrud-0.0.1-SNAPSHOT.jar
报错2:
rm: cannot remove ‘/home/gitlab-runner/builds/11c0daa1/0/root/cicdTest/.git/index.lock’: Permission denied
问题分析:
报错1原因是执行
java -jar /root/project/spring-boot-04-web-restfulcrud-0.0.1-SNAPSHOT.jar
时报错
报错2原因是执行
rm -f /home/gitlab-runner/builds/11c0daa1/0/root/cicdTest/.git/index.lock
时报错
我在使用 SecureCRT 连接时执行上诉命令并不报错。后面发现,我本地测试使用的是root 用户,而在CICD的时候,gitLab 使用的是gitlab-runner 用户,对上述命令中的文件地址没有权限,所以要加上gitlab-runner用户的文件权限
解决:
添加上面命令的两个目录的权限
chmod 755 /root/project
chmod 755 /home/gitlab-runner/builds/11c0daa1/0/root/cicdTest
效果:
执行build 任务成功
执行package 任务成功,jar包执行正常(jar包是个springboot web项目)
项目页面,启动正常,欧耶!