我正在尝试创建一个Gradle任务,它将运行一个干净的构建,然后从bmuschko / gradle-docker-plugin插件运行buildDockerImage任务 . 我可以在命令行中的单独命令中成功运行clean任务,构建任务和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
任何帮助表示赞赏!
1 回答
这是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