我正在尝试创建一个 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,所以我目前的理解有限。
任何帮助不胜感激!
这是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