Http_proxy 环境变量存在于终端中,但不存在于 Jenkins 运行中

Http_proxy 环境变量存在于终端中,但不存在于 Jenkins 运行中

在 中/etc/profile,我们http_proxy设置了变量。当我们从终端运行命令env(通过 putty 中的 ssh 登录)时,它会正确显示。

但是当我们尝试从 Jenkins 运行env命令时,这个变量不存在。在/etc/profile导出http_proxy。下面是我的/etc/profile

MY_PROXY_URL="http://web-proxy.corp.mycorp.net:8080"
HTTP_PROXY=$MY_PROXY_URL
HTTPS_PROXY=$MY_PROXY_URL
FTP_PROXY=$MY_PROXY_URL
http_proxy=$MY_PROXY_URL
https_proxy=$MY_PROXY_URL
ftp_proxy=$MY_PROXY_URL

export HTTP_PROXY HTTPS_PROXY FTP_PROXY http_proxy https_proxy ftp_proxy

当我们在 jenkins 中运行以下命令时

if [ -z $PS1 ] # no prompt?
then
  echo "non-interactive"
else
  echo "interactive"
fi

它显示为非交互式。所以我们尝试了下面的方法,在 .bashrc 文件中我们把这个

# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

if [ -f ~/.bashrc ] ; then
        source ~/.bashrc
fi

但还是env显示不行http_ptoxy。请帮忙。我们使用的是 Centos 7.7 虚拟机

答案1

默认情况下,Jenkins 使用sh而非bash来执行 shell 步骤。

从“执行 shell”部分的帮助/问号图标:

Runs a shell script (defaults to sh, but this is configurable) for building the project.

如果您转到管理 Jenkins --> 配置系统,您将找到一个选项(称为“Shell 可执行文件”)来设置您希望 shell 脚本使用的 shell 的名称或绝对路径...

https://stackoverflow.com/a/12457930/1824868

相关内容