似乎Jenkins正在使用环境变量$ JENKINS_HOME用于两个不同的目的,并且为了每个目的,它将获得不同的值。
目的#1:首先,JENKINS_HOME是本地文件系统上存储Jenkins创建的文件的目录。 Jenkins将此目录用于磁盘空间以执行构建并保留存档。所以样本值可能是:
export JENKINS_HOME=/var/jenkins
这里描述了这个目的:
目的#2: 另一个实例是Jenkins使用JENKINS_HOME环境变量,这是用于监视外部作业。但这次JENKINS_HOME是一个URL,如:
export JENKINS_HOME=http://user:pw@myserver.acme.org/path/to/jenkins/
这里描述了这个目的:
Jenkins使用相同的环境变量似乎很奇怪,但它的值会根据目的而改变。我认为外部作业将使用另一个名称作为环境变量,如JENKINS_URL。我想作为一种解决方法,我可以在Servlet容器(对我来说是Tomcat)中设置环境变量,而不是在操作系统上,因此没有冲突。尽管如此,变量的这种冲突首先存在的事实似乎很奇怪。有什么我想念的吗?
答案 0 :(得分:1)
这很令人困惑,但第二个目的是监控外部流程中的Jenkins工作,而不是Jenkins本身;所以在这种情况下不是Jenkins使用$ JENKINS_HOME值并且没有冲突。不过,他们本可以为变量选择一个更好的名称。
在大多数其他情况下,Jenkins主URL称为JENKINS_URL - 例如,请参阅Jenkins CLI documentation。