用gradle构build一个docker play应用程序

我正在尝试使用gradle构build一个包含play应用程序的docker容器,而且我正遇到gradleconfiguration和运行构build的问题。 问题是,为了“容器化”使用播放插件构buildGradle的应用程序,我需要从创build的文件夹构buildDocker容器(使用com.palantir.docker:0.5.2插件) playBinary任务的执行结果。

我试图通过添加一个像这样的新任务来复制上述任务创build的文件夹:

task copyDockerDependencies(type: Copy, dependsOn: build){ from 'build/stage/playBinary' into 'build/docker' } 

但是当我执行gradle clean playBinary docker任务时,它会失败,因为:

Skipping task ':copyDockerDependencies' as it has no source files.

我知道这是由于文件夹的构build在项目configuration时不存在,所以我想知道是否有一种方法来执行此检查在执行时间,以便文件夹和这些文件存在,和docker build任务是能够find他们?

我试图在我的复制任务中使用doLast但是这也不起作用。 任何帮助将不胜感激。 干杯

为了防止任何人感兴趣,我使用这样的执行任务来做到这一点:

 task copyDockerFiles(type: Exec){ workingDir '.' commandLine '/bin/cp', '-r', "${origin}", "${destination}" } 

虽然我不特别喜欢将bash脚本添加到gradle构build中的想法。 我不知道这是实现这个目标的正确方法,但是它是有效的。 干杯

palantir docker gradle插件从任何你依赖的任务中复制任务输出。 因此,根据“dist”任务,将输出(包括play二进制文件)复制到docker构build上下文中。

请参阅: https : //github.com/palantir/gradle-docker/issues/42