gpt4 book ai didi

jenkins - Jenkinsfile自定义Docker容器 “could not find FROM instruction”

转载 作者:行者123 更新时间:2023-12-02 20:32:42 27 4
gpt4 key购买 nike

我刚刚开始使用Jenkinsfiles和Docker,所以很抱歉,这很明显。

我有一个包含Dockerfile和Jenkins文件的仓库。

Dockerfile通过添加几个依赖项和构建工具,简单地扩展了基本的Ubuntu镜像(ubuntu:trusty)。

Jenkinsfile当前仅为我构建Docker容器:

node('docker') {
stage "Prepare environment"
checkout scm
docker.build('build-image')
}

当我运行Jenkins构建时,输出日志显示成功创建了Docker容器,但是在它应该成功完成之前,我得到:
Successfully built 04ba77c72c74
[Pipeline] dockerFingerprintFrom
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
[Bitbucket] Notifying commit build result
[Bitbucket] Build result notified
ERROR: could not find FROM instruction in /home/emackenzie/jenkins/workspace/001_test-project_PR-1-ROWUV6YLERZKDQWCAGJK5MQHNKY7RJRHC2TH4DNOZSEKE6PZB74A/Dockerfile
Finished: FAILURE

我一直找不到为什么我从互联网上收到此错误的任何指导,因此我们将不胜感激

Dockerfile:
FROM    ubuntu:trusty
MAINTAINER Ed Mackenzie

# setup apt repos
RUN echo "deb http://archive.ubuntu.com/ubuntu/ trusty multiverse" >> /etc/apt/sources.list \
&& echo "deb-src http://archive.ubuntu.com/ubuntu/ trusty multiverse" >> /etc/apt/sources.list \
&& apt-get update

# python
RUN apt-get install -y python python-dev python-openssl

最佳答案

这是因为FROM行使用制表符代替空格,而不是空格。这是Jenkins CI Docker工作流程插件中的一个错误,该错误期望该行以FROM开头,后跟一个空格。

从Github上的jenkinsci/docker-workflow-plugin来源:

String fromImage = null;

// ... other stuff

if (line.startsWith("FROM ")) {
fromImage = line.substring(5);
break;
}

// ... other stuff ...

if (fromImage == null) {
throw new AbortException("could not find FROM instruction in " + dockerfile);
}

如果使用空格而不是制表符,它应该可以正常工作。

关于jenkins - Jenkinsfile自定义Docker容器 “could not find FROM instruction”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41985837/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com