提问者:小点点

使用bmuschko/gradle-docker-plugin抓取清洁任务


我正在尝试创建一个 Gradle 任务,该任务将运行一个干净的构建,然后从 bmuschko/gradle-docker-plugin 插件运行一个 buildDockerImage 任务。我可以在命令行中的单独命令中成功运行清理任务、构建任务和构建 DockerImage 任务,但是当我尝试创建一个执行所有三个任务的单个任务时,我收到一个错误:

.../config-server/build/docker/state/DockerBuildImage_Decorated (No such file or directory)

看起来gradle-docker-plugin正在尝试向 /build/docker/state目录添加某种日志文件,但当我在单个任务中运行清理、构建和构建DockerImage时,该目录不存在。但是当我在CLI中以单独的命令运行这些时,该目录存在。

如果我不去打扫。。。它工作正常,并创建docker图像:

import com.bmuschko.gradle.docker.tasks.image.DockerBuildImage
task buildDockerImage(type: DockerBuildImage) {
  doFirst {
    copy {
      from 'src/main/resources/docker/Dockerfile'
      into 'build/libs'
    }
  }

  inputDir = project.file('build/libs')
  tag = alexFabian + "/" + jar.baseName
}

task myBuildDockerImage(type: Task, dependsOn: ['build' ,'buildDockerImage']) {
  buildDockerImage.mustRunAfter build
}

我的构建目录如下所示:

/classes
/dependency-cache
/docker
/libs
/reports
/resources
/test-results
/tmp 

但当我添加对“清理”任务的依赖时。。。buildDockerImage任务失败,因为它找不到/build/docker目录

import com.bmuschko.gradle.docker.tasks.image.DockerBuildImage
task buildDockerImage(type: DockerBuildImage) {
  doFirst {
    copy {
      from 'src/main/resources/docker/Dockerfile'
      into 'build/libs'
    }
  }

  inputDir = project.file('build/libs')
  tag = afabian + "/" + jar.baseName
}

task myBuildDockerImage(type: Task, dependsOn: ['clean', 'build' ,'buildDockerImage']) {
  build.mustRunAfter clean
  buildDockerImage.mustRunAfter build
}

现在我的构建/目录看起来像这样(缺少 /docker目录):

/classes
/dependency-cache
/libs
/reports
/resources
/test-results
/tmp

我收到此错误:

Execution failed for task ':buildDockerImage'.
> .../config-server/build/docker/state/DockerBuildImage_Decorated (No such file or directory)

我过去使用过Maven,后来又使用过Gradle,所以我目前的理解有限。

  • 使用gradle(包装器):2.11
  • 使用gradle-docker-plugin:com.bmuschko: gradle-docker-plugin: 2.6.6

任何帮助不胜感激!


共1个答案

匿名用户

这是bmuschko插件早期版本中的一个bug。尝试使用新版本。我在旧版本('com.bmuschko:gradle docker plugin:2.6.6')中也遇到了同样的问题,但当我升级到版本:com.bmusschko:grade docker plugin.2.6.8时,问题得到了解决。

https://github.com/bmuschko/gradle-docker-plugin/issues/168