【发布时间】:2018-05-31 08:54:09
【问题描述】:
我的 spring-boot 应用程序最初是用 maven 构建的,但我正在尝试对其进行 gradle-ify。我的构建过程的一部分是使用 dockerfile-maven 插件制作 docker 镜像。最被接受的 gradle 等价物似乎是 com.palantir.docker,所以这就是我正在使用的(至少根据 this tutorial from pivotal。)
我的设置非常简单。我的 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 设置。我传递的构建参数看起来是正确的:
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 文件吗?
【问题讨论】:
标签: docker spring-boot gradle