java - 创建一个包含预安装的Spring Boot依赖项的Docker镜像

标签 java docker spring-boot gradle gitlab

我有一个用gradle构建的 spring-boot java应用程序,由gitlab CI在gitlab.com上运行,效果很好。但是每次CI运行时,都需要花费大量时间来下载依赖项(因为我使用的是gitlab.com的gitlab shared-runner,它是docker-auto-scale运行器,并且在下次运行时不会缓存任何内容)。

我的想法是在docker:latest上创建docker镜像(因为构建作业需要在运行时与docker守护程序进行交互),然后预安装将gradle缓存添加到镜像,以便镜像包含我的应用程序需要的所有依赖项CI运行时,不需要重新下载依赖项。

有人做过吗?

最佳答案

我有和您一样的主意,但对于Maven。
在docker镜像构建期间,我将镜像中的项目文件复制并运行mvn clean install并将其上传到我的gitlab注册表中。

CI管道执行时间大大减少。

但是,当然,每当您有新的依赖项时,或者至少在缓存中已有的内容与应用程序所需的依赖项之间有很大差异时,您当然都需要这样做。

关于java - 创建一个包含预安装的Spring Boot依赖项的Docker镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49686440/

相关文章:

目录中的 Java JTree(显示完整路径,而不仅仅是文件名)

java - 如何模拟 SpringApplicationContext.getApplicationContext().getBean(SpecificBeanName.class) 调用

java - 如何从java中的空值空字符串替换?

docker - 使用 Docker 和 Firefox 的 RSelenium,在 Mac 上无法打开浏览器

java - 无法通过 @Query 将集合传递给构造函数

java - 我如何在 KDE 的 Java 中强制/开始使用 GTKLookAndFeel?

.net - 在 key 环中找不到 key 。无法验证 token

ruby-on-rails - Rails Assets 缓存未清除 - Docker、Rails、Nginx

java - 自动保存期间的Jpa OneToMany关系处理关系

java - 如何使用 Gradle 项目及其依赖项?