Docker 插件:java.io.FileNotFoundException:/src/main/docker/Dockerfile gradle-docker 失败
Posted
技术标签:
【中文标题】Docker 插件:java.io.FileNotFoundException:/src/main/docker/Dockerfile gradle-docker 失败【英文标题】:Docker plugin : java.io.FileNotFoundException: /src/main/docker/Dockerfile gradle-docker fails 【发布时间】:2016-02-13 05:42:18 【问题描述】:我正在尝试在 osx (mbp) 上运行 spring boot sample,但出现以下异常(尝试 buildDocker 任务)。我确定我已经正确配置了 docker,因为我可以运行命令 docker-machine run hello-world
并接收正确的输出。
Caused by: java.io.FileNotFoundException: /src/main/docker/Dockerfile (No such file or directory)
at se.transmode.gradle.plugins.docker.image.Dockerfile.fromExternalFile(Dockerfile.groovy:45)
at se.transmode.gradle.plugins.docker.image.Dockerfile$fromExternalFile.call(Unknown Source)
at se.transmode.gradle.plugins.docker.DockerTask.buildDockerfile(DockerTask.groovy:223)
at se.transmode.gradle.plugins.docker.DockerTask.build(DockerTask.groovy:238)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:63)
... 54 more
其他验证是我可以毫无问题地运行 gradle-docker 默认构建任务(即 distDocker)。当我尝试在 gradle 脚本上运行 build 任务时出现问题。
// tag::task[]
task buildDocker(type: Docker, dependsOn: build)
push = true
applicationName = jar.baseName
dockerfile = file('/src/main/docker/Dockerfile')
doFirst
copy
from jar
into stageDir
// end::task[]
我无法确定为什么它无法确定文件已经存在。我尝试复制到根目录并更改路径,但没有成功。
OSX:10.10.4 Java : 1.8
【问题讨论】:
你在哪个目录运行 buildDocker?你用的是gradlew还是gradle?你的命令是什么?我从项目根目录运行相同的任务:./gradlew buildDocker @Bloodysock 从目录 /Users/charith/gs-spring-boot-docker/complete/ 运行并使用 gradlew。 我使用相同的命令 ./gradlew --stacktrace buildDocker 删除路径中 src 之前的“/”。该路径相对于当前目录(项目根目录)而不是卷根目录。 谢谢大佬,就是这样。解决问题。我以前应该尝试过的。干杯! 【参考方案1】:删除路径中 src 之前的“/”。该路径是当前目录(项目根目录)的相对路径,而不是卷根目录。
【讨论】:
以上是关于Docker 插件:java.io.FileNotFoundException:/src/main/docker/Dockerfile gradle-docker 失败的主要内容,如果未能解决你的问题,请参考以下文章
还在使用第三方Docker插件?SpringBoot官方插件真香!
Maven实战技巧「Docker实战系列」使用Maven插件构建Docker镜像的方法