【发布时间】:2021-04-28 09:28:32
【问题描述】:
我对 dockerizing Java/Spring Boot/Maven 应用程序以使用 docker 层的正确流程有疑问。
目前看起来像这样 -> Maven 更新版本(使用 maven 发布插件) -> docker 镜像正在使用自定义 dockerfile 构建。
但是问题是,每次都会下载所有依赖项(即使没有修改 pom,因为我要构建的每个新版本在 pom 中都有不同的版本值(它正在使用此插件进行更新)。
我想使用 docker 层,这样我们的构建可以比现在更快。有可能这样做吗?如果是,怎么做?我应该使用不同的插件还是应该考虑其他选项(也许整个流程很糟糕,应该以不同的方式完成?)
【问题讨论】:
-
为什么每次都下载依赖?您是否在容器内构建并且没有安装缓存?另外,为什么不简单地使用结果(spring boot 应用程序)并将其仅复制到容器中?
-
我们有多阶段 dockerfile,它打包应用程序然后复制 jar 文件。打包应用程序的阶段是有问题的,因为它会下载所有必要的依赖项才能构建应用程序。
-
如前所述,需要缓存,如果您在容器内构建(我通常会阻止)并最终将最终 jar 复制到 docker 时不将其挂载到 docker 映像中图片...如果您想阻止下载,则必须将缓存安装到您的 docker 容器中
-
我会测试并返回结果;)
标签: java spring-boot docker maven microservices