java - 使用 bmuschko/gradle-docker-plugin 进行 Gradle 清理任务

标签 java gradle docker build.gradle gradle-plugin

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

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

看起来 gradle-docker-plugin 正在尝试将某种日志文件添加到/build/docker/state 目录,但当我在单个任务中运行 clean、build 和 buildDockerImage 时,该目录不存在。但是,当我在 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 
<小时/>

失败

但是当我添加对“clean”任务的依赖项时... 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
}

现在我的 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

感谢任何帮助!

最佳答案

这是 bmuschko 插件早期版本中的一个错误。 尝试使用新版本。我在旧版本('com.bmuschko:gradle-docker-plugin:2.6.6')中遇到了同样的问题,但是当我升级到版本: com.bmuschko:gradle-docker-plugin:2.6.8 时,它已修复。

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

关于java - 使用 bmuschko/gradle-docker-plugin 进行 Gradle 清理任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35897210/

相关文章:

java - RMI 绑定(bind)失败并显示 "java.lang.ClassNotFoundException: rmitest.IRemote"

java - MediaType HTML 的 HttpMediaTypeNotAcceptableException

android - firebaseAppDistribution - 方法 : build. android() 的无签名适用于参数类型:(build_run_closure1) 值:[build_run_closure1@x

java - CodeCov 找不到报告

android - 通过命令行创建基于 gradle 的 android 项目

docker - Traefik 基本认证

具有固定项的整数分区的数组 [矩阵] 的 Java 数组

java - Selenium 中断显式等待

mysql - 通信链接失败,Spring Boot + MySql +Docker + Hibernate

docker - 如何订购 docker 容器启动?