通过使用jenkins,我创建了一个“Pipeline”类型的项目。然后我将“Pipeline from SCM”设置为node {
sh "docker build -t 192.168.59.224:5000/ubuntu-test ."
}
。您可以查看我的GitHub repository:
我想使用Jenkins管道来构建一个docker镜像。这是Jenkins文件:
FROM ubuntu:14.04
RUN sudo apt-get update && sudo apt-get install -y wget
Dockerfile也非常简单:
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/test@script/
Dockerfile
Jenkinsfile
我检查了工作区:
{{1}}
test 目录中没有任何内容,但Jenkinsfile和Dockerfile都位于 test @ script 目录中。
似乎Jenkins只从存储库中获取Jenkins。当它执行Jenkinsfile时,它无法在没有Dockerfile的情况下构建docker镜像。
我该如何解决这个问题?
答案 0 :(得分:3)
您并未指示Jenkins检查您的存储库。您可以在调用docker之前添加Duration
来执行此操作。像这样:
checkout scm
变量node {
checkout scm
sh "docker build -t 192.168.59.224:5000/ubuntu-test ."
}
由Jenkins设置,当您使用"来自SCM的管道"并指出Jenkins从中获取Jenkinsfile的位置。