我一直在尝试为我的 spring-boot-application 创建一个多阶段的 docker 构建。问题在于 master 分支上的每次更改,pom.xml 文件更改(感谢 maven 发布插件),因此在构建阶段使用 docker build-cache 有点困难,并且所有依赖项都会下载我运行构建的时间。据我所知,在构建映像期间我无法安装卷。docker 的实验版本允许您在构建过程中安装卷,但它仍然是实验性的,所以我试图避免它。
所以我决定用 docker-compose 试试运气,第一个服务将在容器内运行“mvn package”并在共享卷内创建一个 jar 文件,然后第二个服务将使用该文件构建自己的图像(基本上是在它的图像中添加那个 jar),它将被发布到 docker hub。无论我试图做什么似乎都不对。现在我在这里并不是真正的 docker-compose 专家,但这是正确的方法吗?
我在用着Docker version 18.09.0, build 4d60db4
version: '3'
#Specify all the services you want to create
services:
#service name
build-service:
context: .
dockerfile: Dockerfile-build
volumes:
- ./:/usr/app
- "$(HOME)"/.m2:/usr/mvn/.m2
spring-app:
conext: .
dockerfile: Dockerfile-jar
volumes:
- ./:/usr/app
有没有办法在第一阶段使用本地 .m2 存储库。或者欢迎任何其他建议。