2017-02-25 17 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はtest @ scriptディレクトリにあります。

ジェンキンスはジェンキンスのみをリポジトリから取得するようです。 Jenkinsfileを実行すると、Dockerfileなしでドッカー画像を構築することはできません。

どうすれば問題を解決できますか?

答えて

3

あなたはJenkinsにあなたのリポジトリをチェックアウトするように指示していません。これを行うには、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

関連する問題