为什么我的Jenkins环境与我的本地用户环境不同

时间:2016-02-05 04:23:22

标签: bash jenkins path environment-variables

我检查环境变量,可以看出它们与Jenkins的不同之处。我在admin(用户名)下启动了终端并执行了一个简单的命令id -un; echo $PATH

~ admin$ id -un
admin
~ admin$ echo $PATH
/Users/admin/.rvm/gems/ruby-2.2.3/bin:/Users/admin/.rvm/gems/ruby-2.2.3@global/bin:/Users/admin/.rvm/rubies/ruby-2.2.3/bin:/Users/admin/.rvm/bin:/Users/admin/.gem/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/admin/.gem/bin:/Users/admin/.gem/bin

当我从shell脚本运行相同的命令作为Jenkins构建的一部分时,我可以看到不同的输出:

+ id -un
admin
+ echo /usr/bin:/bin:/usr/sbin:/sbin
/usr/bin:/bin:/usr/sbin:/sbin

似乎我有〜/ .bach_profile被Jenkins忽略或者可能是在Jenkins加载后执行的。

我该如何解决?

ps:Jenkins在管理员用户下作为守护进程启动。

2 个答案:

答案 0 :(得分:1)

Jenkins旨在让您绝对控制构建运行的环境。这使您可以在“实验室条件”下测试代码,这样如果出现问题,您就可以确切了解条件是什么。

作为向您提供“每次都相同”可靠性的一部分,它会重置您的所有环境变量,以便您的构建运行的环境是独立 Jenkins运行的环境。

如果要为Jenkins构建设置环境变量,请查看How to set environment variables in Jenkins?

答案 1 :(得分:0)

jenkins rpm提供的默认init.d脚本将源文件/ etc / sysconfig / jenkins如果你将环境内容添加到那里,它也应该选择它。