2016-04-05 121 views
1

我正在嘗試使用gradle構建包含play應用程序的docker容器,並且我遇到了gradle配置和運行構建方式的問題。問題是,爲了'容器化'使用播放插件構建gradle的play應用程序,我需要從創建的文件夾中構建docker容器(使用插件的com.palantir.docker:0.5.2)作爲執行playBinary任務的結果。使用gradle構建docker play應用程序

我試圖通過增加這樣一個新的任務來複制文件夾的上述任務創建:

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.

我知道這是由於文件夾的構建在配置項目時不存在,所以我想知道是否有一種方法可以在執行時執行此檢查,以便文件夾和這些文件存在,並且docker build任務能夠找到它們?

我試圖在我的複印任務中使用doLast,但這也不起作用。任何幫助將不勝感激。 乾杯

回答

0

萬一有人有興趣,我管理使用執行任務,這樣做:

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

雖然我並不特別喜歡加入的bash腳本的gradle這個構建的思路。我不知道這是實現這一目標的正確方法,但它很有效。 Cheers