我想为 Spring Boot 应用程序创建 Docker 镜像。它使用 gardle 作为构建工具。
在 bitbucket 存储库中,我可以看到放置了以下文件
--> src
--> build.gradle
--> Dockerfile
--> gradlew
--> gradlew.bat
现在 Dockerfile 有以下内容
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG DEPENDENCY=target/dependency
COPY ${DEPENDENCY}/BOOT-INF/lib /app/lib
COPY ${DEPENDENCY}/META-INF /app/META-INF
COPY ${DEPENDENCY}/BOOT-INF/classes /app
EXPOSE 8080
ENTRYPOINT ["java","-cp","app:app/lib/*","eds.billnq"]
当我尝试使用 Dockerfile 创建图像时出现错误
target/dependency/BOOT-INF library not found
target/dependency/META-INF library not found
我的问题是为什么这里 docker 文件中没有 gradle 构建步骤?
还将在哪里创建目标/依赖项/?
最佳答案
why here there is no gradle build steps in docker file ?
它看起来像
Dockerfile
期望在构建 Docker 镜像之前已经构建了应用程序(由 Gradle),并且生成的类文件和 jar 可以在 target/dependency
下的各个目录中使用.Spring Boot Docker guide @WonChul Heo 在评论中提到如何使用 Gradle 构建 Docker 镜像,特别是使用插件
gradle.plugin.com.palantir.gradle.docker:gradle-docker
.Also where target/dependency/ will be created ?
我猜它们应该在您运行 Gradle 构建时创建,但如果不了解更多关于构建如何配置的信息,很难确定。
我建议您再次阅读该指南,并将其推荐的内容与您的代码库中的内容进行比较,尤其是 Gradle 构建定义。
归根结底,如果您从私有(private)代码仓库中提取代码并且无法弄清楚如何构建它,那么最好向致力于代码库的人寻求建议,而不是向 SO .
关于spring-boot - Dockerfile 来创建 Spring Boot 的镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58908903/