【发布时间】:2021-03-10 18:13:34
【问题描述】:
根据docker maven image documentation,
$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,依赖完全重新下载。
我在这里错过了什么吗?是否需要运行任何特殊步骤来复制存储库内容?
【问题讨论】: