JENKINS_HOME环境变量用于两个相互冲突的目的



Jenkins似乎将环境变量$Jenkins_HOME用于两个不同的目的,并且对于每个目的,它将获得不同的值。

目的#1:首先,有一个JENKINS_HOME,它是本地文件系统上的一个目录,用于存储JENKINS创建的文件。Jenkins使用这个目录作为磁盘空间来执行构建和保存归档。因此样本值可能是:

export JENKINS_HOME=/var/jenkins

这个目的在这里描述:

  • https://wiki.jenkins-ci.org/display/JENKINS/Tomcat
  • https://wiki.jenkins-ci.org/display/JENKINS/Administering+詹金斯

目的#2:还有另一个Jenkins使用Jenkins_HOME环境变量的实例,用于监视外部作业。但这次JENKINS_HOME是一个URL,就像这样:

export JENKINS_HOME=http://user:pw@myserver.acme.org/path/to/jenkins/

这个目的在这里描述:

  • https://wiki.jenkins-ci.org/display/JENKINS/Monitoring+外部+作业

所以Jenkins使用相同的环境变量似乎很奇怪,但它的值会根据目的而变化。我认为外部作业会为环境变量使用另一个名称,比如JENKINS_URL。我想作为一种变通方法,我可以在Servlet容器(对我来说是Tomcat)中设置环境变量,而不是在操作系统上设置,这样就不会发生冲突。尽管如此,变量的这种冲突首先存在的事实似乎很奇怪。我有什么东西不见了吗?

这很令人困惑,但第二个目的是在外部过程中监视Jenkins作业,而不是在Jenkins本身中;所以在这种情况下不是Jenkins使用$Jenkins_HOME值,并且没有冲突。不过,他们本可以为这个变量取一个更好的名字。

在大多数其他情况下,Jenkins主URL被称为Jenkins_URL——例如,请参阅Jenkins CLI文档。

最新更新