我有一个Maven项目。我在Docker中运行我的Maven构建。但问题是它每次运行时都会下载所有Maven依赖项,而且它不会缓存任何Maven下载。
我找到了一些解决方法,将本地.m2文件夹挂载到Docker容器中。但这将使构建依赖于本地设置。我想要做的是创建一个卷(万岁)并将该卷链接/挂载到Docker中的.m2
文件夹。这样,当我第二次运行Docker构建时,它不会下载所有内容。它不会依赖于环境。
如何使用docker-compose执行此操作?
答案 0 :(得分:5)
如果不知道您的确切配置,我会使用类似的东西......
version: "2"
services:
maven:
image: whatever
volumes:
- m2-repo:/home/foo/.m2/repository
volumes:
m2-repo:
这将创建一个名为m2-repo
的数据卷,该数据卷映射到/home/foo/.m2/repository
(根据需要调整路径)。数据量将在Docker Compose项目的上/下/开始/停止时存活。
您可以通过运行docker-compose down -v
之类的内容来删除卷,这会破坏容器和卷。