如何在Jenkins流水线中使用docker.build()指定自定义命名的Dockerfile?
可以指定自定义Dockerfile!
当然没问题,Jenkins的Docker Pipeline插件完全支持在docker.build()中指定特定的Dockerfile,你之前的写法思路有点偏差,我来给你纠正下正确的用法:
正确语法示例
你想要实现的是命令行里的:
docker build -t api:latest -f Dockerfile-api .
对应的Jenkins Pipeline代码应该是:
def apiImage = docker.build("api:latest", "-f Dockerfile-api .")
关键说明
- 第一个参数
"api:latest"是你要构建的镜像的标签(格式为name:tag),这部分和命令行里的-t参数对应; - 第二个参数是传给
docker build命令的额外参数集合,这里把-f Dockerfile-api和构建上下文.都放进去,完全对应命令行里的写法; - 如果你需要传递其他构建参数(比如
--build-arg),也可以一起加到第二个参数里,比如:def apiImage = docker.build("api:prod", "--build-arg ENV=prod -f Dockerfile-api .")
针对非当前目录的Dockerfile
如果你的Dockerfile不在Jenkins工作目录的根路径,比如在./configs/Dockerfile-api,只需要调整路径即可:
def apiImage = docker.build("api:v2.0", "-f ./configs/Dockerfile-api .")
这样就能精准指定不同场景下的唯一命名Dockerfile啦!
内容的提问来源于stack exchange,提问作者demonintherough
相关产品推荐
相关产品推荐

