目前,我的管道正在执行以下操作:
pipeline {
agent {
docker {
label 'linux'
image 'java:8'
args '-v /home/tester/.gradle:/.gradle'
}
}
environment {
HOME = '/'
GRADLE_USER_HOME = '/.gradle'
GRADLE_PROPERTIES = credentials('gradle.properties')
}
stages {
stage('Build') {
steps {
sh 'cp ${GRADLE_PROPERTIES} ${GRADLE_USER_HOME}/'
sh './gradlew clean check'
}
}
}
}
问题是,gradle.properties
最终在构建期间被放置在主机系统上更知名的位置。
我知道Docker让我从主机“挂载”文件。因此,我想改为这样做:
agent {
docker {
label 'linux'
image 'java:8'
args '-v /home/tester/.gradle:/.gradle ' +
'-v ' + credentials('gradle.properties') +
':/.gradle/gradle.properties'
}
}
不幸的是,这最终运行以下命令:
$ docker run -t -d -u 1001:1001 -v /home/tester/.gradle:/.gradle -v @credentials(<anonymous>=gradle.properties):/.gradle/gradle.properties -w
有没有办法将其扩展?
答案 0 :(得分:0)
我找不到使docker args环境正常工作的方法。 我的解决方法最终被切换回脚本管道:
agent {
label 'linux'
}
environment {
GRADLE_PROPERTIES = credentials('gradle.properties')
}
steps{
script {
docker.image('java:8').inside('-v /home/tester/.gradle:/.gradle ' +
"-v $GRADLE_PROPERTIES:/.gradle/gradle.properties"){
}
}
}