我想在jenkinsfile中运行Docker命令,但遇到了错误
我在jenkinsfile中有三个阶段我想在jenkinsfile中运行Docker命令,但遇到了错误,docker,jenkins,jenkins-pipeline,Docker,Jenkins,Jenkins Pipeline,我在jenkinsfile中有三个阶段 皮棉锉 变量设置 构建docker映像。 当我在第2阶段之前运行sh“docker build--tag=hello.”时,该命令会生成docker映像,但当我在第2阶段之后运行该命令时,Jenkins管道不会构建docker映像,并将返回一个错误,该过程显然从未在/var/lib/Jenkins/workspace中启动过/hello@tmp/耐用-b5fe7826约5分钟后 我附上了截图 在第2阶段之前运行docker build时生成的图像的屏幕截图
当我在第2阶段之前运行
sh“docker build--tag=hello.”
时,该命令会生成docker映像,但当我在第2阶段之后运行该命令时,Jenkins管道不会构建docker映像,并将返回一个错误,该过程显然从未在/var/lib/Jenkins/workspace中启动过/hello@tmp/耐用-b5fe7826
约5分钟后pipeline {
agent any
stages {
stage("Lint files") {
steps {
echo "Linting HTML file..."
sh "tidy -q -e index.html"
echo "Linting Dockerfile..."
sh "hadolint Dockerfile"
sh "docker build --tag=hello1 ."
}
}
stage("Variables setup") {
steps {
script {
echo "Setting up variables for the build"
env.tag = readFile("./variables/tag.txt").trim()
env.name = readFile("./variables/name.txt").trim()
env.path = readFile("./variables/path.txt").trim()
name="${env.name}"
tag="${env.tag}"
path="${env.path}"
lo="name"
}
}
}
stage("Docker image build") {
steps {
echo "Hello Docker"
sh "docker build --tag=hello2 ."
echo "Hello $name"
}
}
}
}
这是Docker文件代码
# hadolint ignore=DL3007
FROM nginx:latest
# Copy source code to working directory
COPY index.html /usr/share/nginx/html
# Expose port 80
EXPOSE 80
我试过把单引号改成双引号,但没有成功。
我怎样才能解决这个问题
PS:我正在AWS EC2实例上运行Jenkins你有问题吗?我做了一个快速的搜索,它似乎是一个错误的。你能确认你在Jenkins master上使用的插件是哪个版本吗?@proxxz我读到了相关信息,并将插件更新为1.35版本,但它没有消失。我意识到jenkins在第二阶段后将工作目录更改为tmp文件夹,但找不到阻止jenkins将工作目录更改为tmp文件夹的方法。您能否也包括您的Dockerfile,以便我重现该问题/var/lib/jenkins看起来确实有点奇怪,但我不确定您是如何安装jenkins的,您使用的是哪个版本,或者您使用的是什么操作系统。请让我们帮忙。我已经编辑了这篇文章,把Dockerfile包括在内。/var/lib/jenkins是jenkins安装的默认路径,因为我没有更改安装。我使用终端在ubuntu 18.04中安装了jenkins。你有问题吗?我做了一个快速的搜索,它似乎是一个错误的。你能确认你在Jenkins master上使用的插件是哪个版本吗?@proxxz我读到了相关信息,并将插件更新为1.35版本,但它没有消失。我意识到jenkins在第二阶段后将工作目录更改为tmp文件夹,但找不到阻止jenkins将工作目录更改为tmp文件夹的方法。您能否也包括您的Dockerfile,以便我重现该问题/var/lib/jenkins看起来确实有点奇怪,但我不确定您是如何安装jenkins的,您使用的是哪个版本,或者您使用的是什么操作系统。请让我们帮忙。我已经编辑了这篇文章,把Dockerfile包括在内。/var/lib/jenkins是jenkins安装的默认路径,因为我没有更改安装。我使用终端在Ubuntu18.04中安装了jenkins。