更新dockerfile映像而不下载依赖项

时间:2018-02-17 21:07:01

标签: java docker debian

我是码头工人的新手。我使用debian映像来托管J2EE应用程序。

FROM debian

WORKDIR /app

ADD . /app

RUN apt-get update && apt-get --assume-yes install \
    default-jre \
    default-jdk \
    maven

RUN mvn clean install

CMD ["mvn", "ninja:run"]

我通过这样做来构建我的形象:

docker build . -t rssaggregator

我们假设我添加了一个新的依赖项来下载。如何在不再次下载依赖项的情况下更新和构建映像?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

如果在主要安装之后在单独的RUN语句中添加依赖项(并且不要更改上面的任何Dockerfile),Docker将使用缓存层并赢得&t; t下载未修改的图层,除非在构建中指定--no-cache(如果要更新主要安装/图层,可能需要在某些时候执行此操作)。

您还可能需要指定JRE和JDK安装的版本,以便您知道它使用的是什么,然后您可以更改这些版本以使更新更容易。

dockerfile_best-practices。您可能还想尝试使用multi-stage build来构建基本图像的更高级方法。