java - 更新 dockerfile 镜像而不下载依赖项

标签 java docker debian

我是 jetty worker 的新手。我使用 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 构建。 -t rssaggregator

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

感谢您的帮助!

最佳答案

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

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

参见dockerfile_best-practices 。您可能还想尝试 multi-stage build了解在基础镜像上构建的更高级方法。

关于java - 更新 dockerfile 镜像而不下载依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48845937/

相关文章:

java - 如何解决延迟创建文件?

java - 按计划运行所有派生 DAO 类的公共(public)查询

java - 创建 ListView 时出现运行时错误

Debian 8.5 : Lampp Doesn't Start

linux - Liquidsoap标签编码

java - Spring Web 单元测试 - 如何使数据库达到已知状态?

docker - 无人机 CI secret 未填充

docker - 如何使用Docker Compose v3直接在容器中挂载NFS共享/卷

docker - 如何使用main.go在文件夹内构建带有本地包的docker镜像?

linux - 在 Debian 9 上启用核心转储