如何使用Jenkins管道构建Docker映像?

通过使用詹金斯,我创建了一个“管道”类型的项目。然后将“

SCM管道”设置为Jenkinsfile。您可以检查我的GitHub存储库:

我想使用Jenkins管道构建docker映像。这是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/test@script/

Dockerfile

Jenkinsfile

目录中什么都没有,但是Jenkinsfile和Dockerfile都在 目录中。

似乎Jenkins仅从存储库中获取Jenkins。当执行Jenkinsfile时,没有Dockerfile便无法构建Docker映像。

我该如何解决这个问题?

回答:

您不是在指示Jenkins检出您的存储库。您可以通过checkout scm在调用docker之前添加来做到这一点。像这样:

node {

checkout scm

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

}

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

以上是 如何使用Jenkins管道构建Docker映像? 的全部内容, 来源链接: utcz.com/qa/417669.html

回到顶部