spring-boot - Dockerfile 来创建 Spring Boot 的镜像

标签 spring-boot docker gradle microservices

我想为 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/

相关文章:

docker - 多阶段构建只是加载最后一部分?

image - 如何检查 docker 镜像是否包含所有文件?

gradle - 如何打印 Gradle 多项目构建中的所有依赖项?

Gradle,如何检索默认资源目录以添加文件

java - 创建名称为 'entityManagerFactory' 的 bean 时出错

java - 如何将 .pem SSL 证书用于作为 Spring Boot 应用程序开发的 REST API

docker - Docker ADD命令产生 'cannot find the file'错误

gradle - 当 Gradle Native Binaries Plugin 创建任务时

java - Spring Boot,Spring Data JPA,CrudRepository,基于文件的只读数据库,打包在JAR中

java - Spring Boot - Mysql 驱动程序 - JPA - 很长一段时间后,服务器运行发布请求显示无法打开 JPA EntityManager 进行事务