젠킨스 파이프라인(jenkinsfile)에서 /usr/local/bin 인식 시키기

젠킨스 파이프라인(jenkinsfile)에서 /usr/local/bin 인식 시키기

젠킨스 파이프 라인에서 sh 을 실행시킬려고 하는데 docker-compose 명령을 인식하지 못한다

1
2
3
4
5
6
7
8
9
10
11
12

pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'echo $PATH'
}
}
}
}

위처럼 $PATH를 찍어 보니 /usr/local/bin이 경로에 없었다.
withEnv 라는 함수를 사용해 아래와 같이 활용할수도 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14

pipeline {
agent any
stages {
stage('Build') {
steps {
withEnv(['PATH+EXTRA=/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/bin']) {
sh 'docker-compose --version'
}
}
}
}
}

위는 jenkinsfile 한정으로 인식 시키는 방법이고 global 설정을 위해서는

jenkins 관리 -> System -> Global properties
메뉴에서 Environment variables을 설정 해주면 된다

이름은 PATH+EXTRA
값은 /opt/homebrew/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/bin 이런식으로 설정하면 설정이 된다

참고자료