【发布时间】:2017-07-16 04:34:00
【问题描述】:
通过使用 jenkins,我创建了一个“管道”类型的项目。我将“来自 SCM 的管道”设置为获取 Jenkinsfile。你可以查看我的GitHub repository:
我想使用 Jenkins 管道来构建 docker 映像。这是 Jenkins 文件:
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/test@script/
Dockerfile
Jenkinsfile
test目录下什么都没有,但是Jenkinsfile和Dockerfile都在test@script目录下。
似乎 Jenkins 只能从存储库中获取 Jenkins。执行Jenkinsfile时,没有Dockerfile就无法构建docker镜像。
我该如何解决这个问题?
【问题讨论】: