目前,我有一个类似如下的管道:
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有没有办法让它扩展一下?
发布于 2019-10-29 19:23:31
我找不到一种方法来让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"){
}
}
}https://stackoverflow.com/questions/53164090
复制相似问题