Gradle:指定最终的spring-boot jar文件的正确方法是什么?
我的spring-boot应用程序最初是用maven构build的,但是我正试着去实现它。 我的构build过程的一部分是使用dockerfile-maven插件制作docker镜像 。 最接受的gradle等价物似乎是com.palantir.docker ,所以这就是我正在使用的(至less根据这个教程的关键) 。
我的设置很简单。 我的dockerfile需要一个构build参数,这是最终的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设置。 我通过的构build参数显示正确:
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"]) }
然而,无论何时我试图构build图像,即使实际的Java构build成功,我也会得到以下错误:
$ 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
的path(相对于我的项目),我可以看到上面的打印目录不。
显然,我不了解gradle的构build,有人可以清除如何获得最终的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}"]) }
- 如何正确构build使用Dockerfile的弹簧启动泊坞窗图像?
- SpringBoot与Tomcat使用大约190mb的内存。 什么过程在Springboot中运行?
- 在PCF中的Docker – 无法通过AMQP(spring cloud bus)连接到rabbitmq
- 关于OpenLRW部署到mongo docker实例的exception
- Docker链接容器 – 环境variables不被显示
- 如何使用Dockerconfiguration使用redis的spring引导web应用程序
- 春季启动应用程序无法链接在docker的领事
- 在Docker容器中访问主机上的MySQL数据库
- 多Maven模块Spring MVC项目,以春季启动