2017-02-25 4 views
1

젠킨스를 사용하여 "파이프 라인"유형의 항목을 만듭니다. 그리고 "파이프 라인에서 SCM"을 Jenkinsfile으로 설정했습니다. 내 GitHub repository을 확인할 수 있습니다.Jenkins 파이프 라인을 사용하여 고정 이미지를 만드는 방법은 무엇입니까?

젠킨스 파이프 라인을 사용하여 도커 이미지를 만들고 싶습니다. 여기에 Jenkinsfile은 다음과 같습니다

node { 
    sh "docker build -t 192.168.59.224:5000/ubuntu-test ." 
} 

Dockerfile도 매우 간단하다 :

FROM ubuntu:14.04 

RUN sudo apt-get update && sudo apt-get install -y wget 

내가 프로젝트를 실행합니다. 나는 다음있어 오류 : 여기

unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /var/jenkins_home/workspace/test/Dockerfile: no such file or directory 

내가 작업 공간을 확인

Started by user kai 
[Pipeline] node 
Running on master in /var/jenkins_home/workspace/test 
[Pipeline] { 
[Pipeline] sh 
[test] Running shell script 
+ docker build -t 192.168.59.224:5000/ubuntu-test . 
unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /var/jenkins_home/workspace/test/Dockerfile: no such file or directory 
[Pipeline] } 
[Pipeline] // node 
[Pipeline] End of Pipeline 
ERROR: script returned exit code 1 
Finished: FAILURE 

전체 콘솔 출력을 수 있습니다 :

ls /var/jenkins_home/workspace/test/ 


ls /var/jenkins_home/workspace/[email protected]/ 
Dockerfile 
Jenkinsfile 

시험 디렉토리에 아무것도 없지만, Jenkinsfile 모두와 Dockerfile은 테스트 @ 스크립트 디렉토리에 있습니다.

젠킨스는 젠킨스 만 저장소에서 가져 오는 것으로 보입니다. Jenkinsfile을 실행하면 Dockerfile없이 도커 이미지를 작성할 수 없습니다.

어떻게 문제를 해결할 수 있습니까?

답변

3

젠킨스가 저장소를 체크 아웃하도록 지시하지 않았습니다. docker를 호출하기 전에 checkout scm을 추가하면됩니다. 이처럼 : 당신은 젠킨스에서 Jenkinsfile있어 위치로 "SCM에서 파이프 라인"과 포인트를 사용할 때

node { 
    checkout scm 
    sh "docker build -t 192.168.59.224:5000/ubuntu-test ." 
} 

변수 scm는 젠킨스에 의해 설정된다.

+0

작동하지 않습니다 ... – KiwenLau

+0

같은 오류가 발생했습니다? 또는 리소스를 확인하는 중 오류가 발생 했습니까? –

+0

그것은 동일한 오류입니다 – KiwenLau

관련 문제