Jenkins使用docker构建maven映像无法访问nexus
我正在使用Jenkins管道下载我的代码,并将其构建在官方的maven容器中Jenkins使用docker构建maven映像无法访问nexus,maven,security,docker,jenkins,nexus,Maven,Security,Docker,Jenkins,Nexus,我正在使用Jenkins管道下载我的代码,并将其构建在官方的maven容器中 pipeline { agent none stages { stage('Back-end build') { agent { docker { image 'maven' label 'master'
pipeline {
agent none
stages {
stage('Back-end build') {
agent {
docker {
image 'maven'
label 'master'
}
}
steps {
sh 'mvn -f de.vitasystems.qrcode.generator/pom.xml -s /usr/share/maven/ref/settings.xml clean package'
stash includes: 'target/*.war', name: 'app'
}
}
}
}
这样做之后,我意识到我需要nexus repository配置的settings.xml和settings-security.xml,以便下载它。
然后我做了这个:
注意。尝试使用配置文件提供程序插件,他会将settings.xml从主程序复制到您的工作区中
stage('Build')
{
steps {
configFileProvider(
[configFile(fileId: 'your-id-xxx', variable: 'MAVEN_SETTINGS')]) {
sh 'mvn -s $MAVEN_SETTINGS clean install -P integration-tests'
}
我已经找到了解决方案,只有与root用户在一起时,才会使用设置安全性。 我制作了一个docker文件来创建一个新的docker图像,该图像包括:
FROM maven
COPY settings.xml /root/.m2/settings.xml
COPY settings-security.xml root/.m2/settings-security.xml
ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
CMD ["mvn"]
此映像将封装安全配置,但为了能够在Jenkins文件中使用,您需要使用root用户运行容器。
范例
agent {
docker {
image 'maven'
label 'master'
args '-u root'
}
谢谢你提供的信息,但我找到了解决方案,我现在就解释。