에서는 변수를 설정합니다 /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"이라고 함)을 찾을 수 있습니다.