• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

Gradle:指定最终的spring-boot jar文件的正确方法是什么?

docker 来源:Paul Nelson Baker 5次浏览

我的春天启动应用程序最初是使用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文件?

===========解决方案如下:

我已经解决了这个问题,但我不知道为什么,这是不同的,所以我要离开打开,有人有机会作出详细的解释,为什么这个工程的问题。

的正确值应该引用jar.archivePath。 所以最终结果如下所示:

docker { 
    name = "paulbaker.io/my-blog" 
    tags 'latest' 
    dockerfile file('src/main/docker/Dockerfile') 
    files jar.archivePath 
    buildArgs([JAR_FILE: "${jar.archiveName}"]) 
} 

版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)