GitlabRunner 使用Maven
报权限不足
-
错误
解决前 解决后 提示权限不足,是由于在容器内没有添加映射环境 -
解决方案
- 检测宿主机
maven,java
等的环境变量是否生效
检测所需环境 -
获取环境变量所在路径
获取路径 -
添加数据卷
-
或者重新启动
gitlab-runner
容器时指定数据卷# 查看正在运行的容器 docker ps # 停止容器 docker stop 上述获取的容器id # 删除容器 docker rm 上述获取的容器id # 参数解释 # 将宿主机的 maven、java 环境映射到 docker 内 前面是系统(宿主机)相关环境变量位置:后面是docker内映射路径 -v /usr/local/maven_home/apache-maven-3.6.3:/usr/local/maven_home/apache-maven-3.6.3 -v /usr/local/maven_home/jdk1.8.0_231:/usr/local/maven_home/jdk1.8.0_231 # 启动容器交互式 指定名称后期需要使用 gitlab-runner 名称 docker run -d --name gitlab-runner --restart always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /etc/gitlab-runner \ -v /usr/local/maven_home/apache-maven-3.6.3:/usr/local/maven_home/apache-maven-3.6.3 \ -v /usr/local/maven_home/jdk1.8.0_231:/usr/local/maven_home/jdk1.8.0_231 \ gitlab/gitlab-runner:v12.9.0 # gitlab-runner:v12.9.0 容器名称 和 版本号 # 交互式注册 docker exec -it gitlab-runner gitlab-runner register
-
配置所需环境变量
# 进入容器内 docker exec -it 容器id bash # 配置容器内 maven,java 环境变量 vim /etc/profile # 填写下面内容 系统内和docker都配置 JAVA_HOME=/usr/local/maven_home/jdk1.8.0_231 JRE_HOME=/usr/local/maven_home/jdk1.8.0_231/jre MAVEN_HOME=/usr/local/maven_home/apache-maven-3.6.3 export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$MAVEN_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar # 使其生效 source /etc/profile # 容器内检测环境是否生效 mvn -version
-
测试一个
maven
项目stages: - test test: stage: test script: - echo first build ci - /usr/local/maven_home/apache-maven-3.6.3/bin/mvn package
mvn
项目mvn
项目运行结果 -
配置容器内的
maven镜像
、本地存储库
等
-
- 检测宿主机