Http_proxy 환경 변수가 터미널에 있지만 Jenkins 실행에는 없습니다.

Http_proxy 환경 변수가 터미널에 있지만 Jenkins 실행에는 없습니다.

에서는 변수를 설정합니다 /etc/profile. 터미널 (putty에서 ssh를 통해 로그인) http_proxy에서 명령을 실행하면 올바르게 표시됩니다.env

env하지만 Jenkins에서 명령을 실행하려고 하면 이 변수가 존재하지 않습니다. 내보내기 /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

젠킨스에서 다음 명령을 실행하면

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쉘 단계를 실행합니다.

"쉘 실행" 섹션의 도움말/물음표 아이콘에서:

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

Jenkins 관리 -> 시스템 구성으로 이동하면 쉘 스크립트에서 사용할 쉘의 이름이나 절대 경로를 설정하는 옵션("Shell Executable"이라고 함)을 찾을 수 있습니다.

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

관련 정보