在Docker构build之后缺lessm2存储库

如果我运行一个docker build ,将maven依赖关系拉入到.m2版本库中,那么这个版本不会保留在图片中。

所以,如果我然后尝试 tty到一个正在运行的容器,我的~/.m2/repository目录将是空的。 或者ii)如果我在第一个图像上创build另一个图像,这些图层将不得不再次下载。

我的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条目。 我也删除了caching容器和卷,只是为了确保。 如我所料,陛下够了,资料库就在那里。

所以我的Dockerfile现在看起来像这样。 我没有一个完整的docker卷的grokking。 但是,这一切现在是有道理的。 谢谢。

 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