我的春天啓動應用程序最初是使用Maven構建的,但是我想搖籃 - IFY它。我的構建過程的一部分是使用dockerfile-maven插件製作碼頭圖像。最接受的gradle等價物似乎是com.palantir.docker,所以這就是我正在使用的(至少根據this tutorial from pivotal。)Gradle:指定最終的spring-boot jar文件的正確方法是什麼?
我的設置非常簡單。我的dockerfile需要一個構建參數,這是最終的jar,並將其添加到圖像。
FROM openjdk:8-jdk-alpine
MAINTAINER github.com/paul-nelson-baker
EXPOSE 5005 8080 35729
ENTRYPOINT ["java", "-Xdebug", "-Xrunjdwp:server=y,transport=dt_socket,address=5005,suspend=n", "-jar", "/var/paulbaker/pauls-blog.jar"]
ARG JAR_FILE
ADD ${JAR_FILE} "/var/paulbaker/pauls-blog.jar"
讓我餓的部分是gradle setup。我通過構建ARG出現正確的:每當我試圖建立圖像
docker {
name = "paulbaker.io/my-blog"
tags 'latest'
dockerfile file('src/main/docker/Dockerfile')
files "${project.name}-${version}.jar"
buildArgs([JAR_FILE: "${project.name}-${version}.jar"])
}
不過,我得到以下錯誤,即使實際Java構建成功:
$ gradle build docker
> Task :docker FAILED
ADD failed: stat /var/lib/docker/tmp/docker-builder952857277/pauls-blog-0.0.1-SNAPSHOT.jar: no such file or directory
我已經嘗試了無數的組合試圖指定./build/libs/pauls-blog-0.0.1-SNAPSHOT.jar
的路徑(相對於我的項目),我可以看到存在,而上面的打印目錄沒有。
顯然有一些我不認識的gradle左右建造,能有人清理如何得到最終的jar文件?