2017-11-22 1 views
2

젠킨스를 실행하는 도커 컨테이너가 있습니다.sh '별칭'이 젠킨스 파일에 아무런 출력도 제공하지 않습니다.

Jenkinsfile에서 별칭을 정의하고이 별칭을 인쇄하려고합니다.

내가 젠킨스 컨테이너에 연결, 수동으로 시도하고, 내가 할 수 있어요 :

alias foo='bar' 

와 다음, 나는 별명의 목록을 볼 수 있습니다 alias을 실행할 경우 (I 7 개 미리 별명을 가지고 있고,

: 새)

하지만 Jenkinsfile에서 같은 일을 실행할 때, 나는 foo 명령에 응답하지 않습니다는 ... 여기

내 파이프 라인 코드
#!/bin/groovy 

pipeline { 
agent any 
stages { 
    stage("Use alias command"){ 
    steps { 
     sh 'alias foo="bar"' 
     sh 'foo' 
    } 
    } 
}} 

왜 그런가?

+0

jenkins 사용자의 별칭을 정의하지 않았기 때문에 가능했을 가능성이 큽니다. 또한 "별칭"은 쉘 초기화 (.bash_profile 또는 ...) 중에 설정해야하는 영구적 인 것이 아닙니다. –

+0

빌드에만 지속되는 별칭에 대해서는 별다른 문제가 없습니다. 내가하는 일을 피할 수 있습니다. 파일에 별칭 삽입 별칭이 포함되어 있습니다 ... –

답변

3

sh 명령은 자체 쉘에서 실행됩니다. 그것은 같은 에이전트/작업 공간에 있지만 새로운 쉘이기 때문에 환경 변수, 별명 등이 손실됩니다. 줄을 하나로 결합해야합니다. sh :

#!/bin/groovy 

pipeline { 
agent any 
stages { 
    stage("Use alias command"){ 
    steps { 
     sh ''' 
      alias foo="bar" 
      foo 
     ''' 
    } 
    } 
}} 
+0

okkkkk !! Tx 당신의 도움! –

+0

다른 초보자 용 질문을 게시했습니다. https://stackoverflow.com/questions/47436614/error-unable-to-open-galaxy-yml-errno-2-no-such-file-or-directory-galaxy –

관련 문제