在 Docker 构建后缺少 M2 存储库



如果我运行一个将 maven 依赖项拉入 .m2 存储库的docker build,则不会保留在映像中。

因此,如果我尝试将i(tty 放入正在运行的容器中,我的~/.m2/repository目录将为空。或者ii(如果我在第一个映像之上构建另一个映像,则必须再次下载这些 deps。

Dockerfile的内容在这里。

FROM maven:3.5.0-jdk-8-alpine
RUN apk update 
&& apk add ca-certificates 
&& update-ca-certificates 
&& apk add openssl 
bash 
git
WORKDIR /app
COPY . /app
RUN mvn compile 

我敢肯定这是我不理解的 docker 的一些简单细节。有人在那里有任何见解吗?

@khmarbaise 是的,你是对的。我只需要在我的 Dockerfile 中指定一个VOLUME /root/.m2/repository条目。为了确定,我还删除了缓存的容器和卷。正如我所期望的那样,存储库就在那里。

所以我的 Dockerfile 现在看起来像这样。我没有对 docker 卷有一个完整的了解。但现在这一切都说得通了。谢谢。

FROM maven:3.5.0-jdk-8-alpine
RUN apk update 
&& apk add ca-certificates 
&& update-ca-certificates 
&& apk add openssl 
bash 
git
WORKDIR /app
COPY . /app
VOLUME /root/.m2/repository
RUN mvn compile 

相关内容

  • 没有找到相关文章

最新更新