我是码头工人的新手。我使用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
我们假设我添加了一个新的依赖项来下载。如何在不再次下载依赖项的情况下更新和构建映像?
感谢您的帮助!
答案 0 :(得分:1)
如果在主要安装之后在单独的RUN语句中添加依赖项(并且不要更改上面的任何Dockerfile),Docker将使用缓存层并赢得&t; t下载未修改的图层,除非在构建中指定--no-cache(如果要更新主要安装/图层,可能需要在某些时候执行此操作)。
您还可能需要指定JRE和JDK安装的版本,以便您知道它使用的是什么,然后您可以更改这些版本以使更新更容易。
见dockerfile_best-practices。您可能还想尝试使用multi-stage build来构建基本图像的更高级方法。