You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins脚本式Pipeline构建Docker镜像路径错误求助

问题分析与解决方案

从你提供的Jenkins日志和代码来看,问题出在Dockerfile路径的相对位置理解上,咱们一步步拆解:

核心问题

看执行的Docker命令:

docker build -t km3pipe:13 -f py365 ./dockerfiles

这里的-f py365是告诉Docker在Jenkins工作区的根目录找名为py365的Dockerfile,但你的Dockerfile实际是在./dockerfiles目录下,所以Docker找不到这个文件,报错"no such file or directory"。

这里容易混淆的点是:docker build的-f参数路径是相对于执行命令的当前目录(Jenkins工作区根),而后面的./dockerfiles是构建上下文(传给Docker daemon的文件目录),两者的相对路径基准不一样。

解决方案

调整-f参数的路径,让它指向工作区中Dockerfile的真实位置,也就是把${dockerfile}和${DOCKER_FILES_DIR}拼接起来:

修改Jenkinsfile中的代码为:

def customImage = docker.build("km3pipe:${env.BUILD_ID}", "-f ${DOCKER_FILES_DIR}/${dockerfile} ${DOCKER_FILES_DIR}")

这样执行的Docker命令会变成:

docker build -t km3pipe:13 -f ./dockerfiles/py365 ./dockerfiles

此时Docker会在Jenkins工作区的./dockerfiles目录下找到py365这个Dockerfile,同时以./dockerfiles作为构建上下文,完美匹配你的文件结构。

额外验证点

  • 确认${dockerfile}变量的值确实是Dockerfile的文件名(比如py365,不是带路径的)
  • 确认${DOCKER_FILES_DIR}的值是./dockerfiles(或者工作区中对应的相对路径)

内容的提问来源于stack exchange,提问作者tamasgal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:49:47