根据docker maven图像文档,
$MAVEN_CONFIG目录(默认为/root/.m2)可以配置为因此,在构建时在Dockerfile中复制的任何内容都会丢失。因此,目录/usr/share/maven/ref/存在该目录将在容器启动时复制到$MAVEN_CONFIG。
在容器启动时将/usr/share/maven/ref/
的内容复制到/root/.m2
。我正在使用如下的Dockerfile
FROM maven:3.6.3-adoptopenjdk-8
COPY pom.xml /tmp/pom.xml
RUN mvn -B -f /tmp/pom.xml -s /usr/share/maven/ref/settings-docker.xml install
WORKDIR /app
COPY pom.xml /app/
COPY ./src /app/src
ENTRYPOINT ["mvn","test"]
上面的dockerfile构建了一个映像,其中依赖项存储在/usr/share/maven/ref/repository
中。但是,当容器启动时,不会将内容复制到/root/.m2
,并且完全重新下载依赖项。
我在这里错过了什么吗?是否需要运行任何特殊步骤来复制存储库内容?
对于要复制的存储库,应该调用父图像的入口点。
Dockerfile有如下内容:
入口点("/usr/地方/bin/mvn-entrypoint.sh"]
CMD ["mvn", "test"]
ENTRYPOINT
与docker maven映像的入口点相同。它具有将存储库复制到$MAVEN_CONFIG(默认为/root/.m2
)的逻辑