GitlabRunner 使用Maven命令报权限不足

GitlabRunner 使用Maven报权限不足
  • 错误

    解决前解决后
    提示权限不足,是由于在容器内没有添加映射环境解决后
  • 解决方案

    1. 检测宿主机 maven,java 等的环境变量是否生效
    检测所需环境
    检测所需环境
    1. 获取环境变量所在路径

      获取路径
      获取路径
    2. 添加数据卷

      1. 或者重新启动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
        
        
      2. 配置所需环境变量

      # 进入容器内
      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
      
      
      1. 测试一个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项目运行结果
        mvn项目mvn项目运行结果
      2. 配置容器内的maven镜像本地存储库

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GitLab Runner是一个开源项目,是GitLab CI/CD系统的组件之一。它负责执行定义在GitLab CI/CD的pipelines中的作业。GitLab Runner允许开发人员在包含Docker、Kubernetes等各种环境中运行作业。 Maven是一个用于构建Java项目的工具。它提供了一个强大的依赖管理系统,可以自动下载和管理项目所需的依赖。通过Maven,开发人员可以定义项目的结构以及构建、测试和部署项目的过程。 JDK(Java Development Kit)是Java开发工具包的缩写,是用于开发Java应用程序的软件包。JDK包括Java运行时环境(JRE)、编译器(javac)、调试器(jdb)以及用于创建、编译和运行Java应用程序所需的其他工具。 在GitLab Runner中使用Maven和JDK版本是非常常见的。可以通过在.gitlab-ci.yml文件中定义构建和测试阶段的作业,指定要使用Maven版本和JDK版本。 例如,可以在.gitlab-ci.yml文件中定义一个作业来构建和测试Java项目: ```yaml build: stage: build script: - mvn clean package ``` 在这个例子中,作业名为build,打包阶段执行的命令是mvn clean package。这将使用默认的Maven版本和JDK版本来构建项目。 如果需要指定特定的Maven版本和JDK版本,可以在.gitlab-ci.yml文件中使用variables选项定义环境变量。 ```yaml variables: MAVEN_VERSION: "3.6.3" JDK_VERSION: "11" build: stage: build script: - mvn clean package ``` 在这个例子中,指定了Maven版本3.6.3和JDK版本11。作业将使用这些指定的版本来构建项目。 总之,GitLab Runner可以与Maven和JDK一起使用,通过在.gitlab-ci.yml文件中定义作业和使用环境变量,可以指定要使用的特定Maven版本和JDK版本来构建和测试项目。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值