Jenkins 2.2024.2
Плагин Kubernetes 1.22.0
Переменная env.JAVA_HOME
получает значение, отличное от того, что показывает sh 'printenv'
. Я думал, что env
является отражением окружающей среды. Я также не могу найти, где установлен env.JAVA_HOME
. Это не отражает значение в конфигурациях Global JDK. Я также извлек директорию Jenkins Master root для openjdk и нашел только правильное значение.
bash-4.4# grep openjdk *
config.xml: <home>/usr/local/openjdk-8/jre</home>
Вот конвейер, демонстрирующий поведение.
pipeline {
agent {
kubernetes { label 'java8-mvn3' }
}
stages {
stage('test') {
steps {
container ('java8-mvn3') {
echo env.JAVA_HOME
echo "++++++++++++++++++++++++++"
sh 'printenv | grep JAVA_HOME'
}
}
}
}
}
** OUTPUT **
[Pipeline] echo
/usr/lib/jvm/java-1.8-openjdk
[Pipeline] echo
++++++++++++++++++++++++++
[Pipeline] sh
+ printenv
+ grep JAVA_HOME
JAVA_HOME=/usr/local/openjdk-8