【问题标题】:How to build docker image using Jenkins pipeline?如何使用 Jenkins 管道构建 docker 镜像?
【发布时间】: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镜像。

我该如何解决这个问题?

【问题讨论】:

    标签: jenkins jenkins-pipeline


    【解决方案1】:

    您不是在指示 Jenkins 检查您的存储库。为此,您可以在调用 docker 之前添加 checkout scm。像这样:

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

    变量scm 由 Jenkins 在您使用“来自 SCM 的管道”时设置,并指向 Jenkins 从中获取 Jenkinsfile 的位置。

    【讨论】:

    • 好的,确保/var/jenkins_home/workspace/test/Dockerfile被正确签出。我还建议您编辑您的问题并添加完整的日志。
    • 我检查了工作区并添加了完整的日志。请检查,THX。
    • 谢谢!很明显,Jenkins 没有检查工作区中的源代码(不是 test@script,它只是被 Jenkins 用于检索 Jenkinsfile)。那么上面我建议的管道脚本中的日志(带有checkout scm)还是您的初始日志?如果您有 scm 结帐,您应该会在日志中看到类似 Checking out Revision ... 的内容。
    • 谢谢!我犯了一个错误:我没有正确更新 git 存储库!
    猜你喜欢
    • 2018-06-15
    • 1970-01-01
    • 2018-05-14
    • 2018-06-19
    • 1970-01-01
    • 1970-01-01
    • 2019-11-15
    • 2017-11-04
    • 1970-01-01
    相关资源
    最近更新 更多