docker中Jenkins流水线maven使用遇到的问题

在Docker环境下使用Jenkins进行Maven项目的流水线构建时,遇到了.m2目录映射问题,导致每次都需重新下载依赖。通过检查发现是权限问题,因Jenkins容器内以jenkins用户启动,无法在/root下创建目录。尝试以root用户启动容器,但构建的文件拥有root权限,引发Permission denied错误。最终解决方案是改为在jenkins用户下运行,并修改Maven的本地仓库路径为jenkins用户可写的目录,从而成功解决了权限问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

官方文档使用流水线构建maven项目

pipeline {
    agent {
        docker {
            image 'maven:3.8.1-adoptopenjdk-11' 
            args '-v /root/.m2:/root/.m2' 
        }
    }
    stages {
        stage('Build') { 
            steps {
                sh 'mvn -B -DskipTests clean package' 
            }
        }
    }
}

使用的docker maven来构建项目,其中这一段参数:

args '-v /root/.m2:/root/.m2'

 是为了映射.m2目录,这样docker容器使用完销毁之后,之前下载的jar包还在,下次不用重新下载

但是遇到问题了,一直不能映射,每次都要重新下载,查阅资料无果,只能一步步看了.

 

进入运行中的maven容器看了下,/root/.m2下空空如也,就想着是不是默认目录不一样,去看了下docker-maven的说明,默认目录就是/root/.m2,然后又想到,是不是权限问题,就去在mvn命令加了个参数,结果换个目录就能生成了:

mvn -Dmaven.repo.local=/v
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值