如果我运行一个将maven依赖项下拉到.m2存储库的docker build
,那么它不会在映像中保留。
因此,如果我尝试 i) tty进入正在运行的容器,我的~/.m2/repository
目录将为空。或者 ii)如果我在第一个图像之上构建另一个图像,则必须再次下载这些图像。
我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
我确定这是码头工人的一些简单细节,我不理解。有人有任何见解吗?
答案 0 :(得分:1)
@khmarbaise是的,你是对的。我只需在Dockerfile中指定一个VOLUME /root/.m2/repository
条目。我还删除了缓存的容器和卷,只是为了确定。并且陛下,存储库就在那里,正如我所料。
所以我的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
VOLUME /root/.m2/repository
RUN mvn compile