【问题标题】:Docker plugin : java.io.FileNotFoundException: /src/main/docker/Dockerfile gradle-docker failsDocker 插件:java.io.FileNotFoundException:/src/main/docker/Dockerfile gradle-docker 失败
【发布时间】: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 之前的“/”。该路径相对于当前目录(项目根目录)而不是卷根目录。
  • 谢谢大佬,就是这样。解决问题。我以前应该尝试过的。干杯!

标签: docker spring-boot boot2docker dockerfile docker-compose


【解决方案1】:

删除路径中 src 之前的“/”。该路径是当前目录(项目根目录)的相对路径,而不是卷根目录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 2017-09-30
    • 2017-01-12
    • 2017-03-12
    • 1970-01-01
    相关资源
    最近更新 更多