我正在使用以下文件构建Docker镜像。这是一个简单的Spring Boot应用程序。
当我对Spring项目进行更新时,我正在重建图像以获取更新的图像。但是,这将创建一个全新的镜像,该镜像将完全重新推送到整个仓库(700 + MB)。如何更新现有镜像以包括新更新的jar而不是全新镜像,这样我就不必为了更新Spring应用程序而增加700 + MB的内存?
这是我当前正在使用的dockerfile:
FROM java:8
EXPOSE 8080
VOLUME /tmp
ADD app-name.1.0.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","app.jar"]
注意:当我运行 docker attach 命令时,它只是坐在那里而不执行任何操作。
最佳答案
看来您错过了Docker容器/镜像点。
新的应用程序版本==>新的Docker镜像是真实的路径,听起来像是您想要的。
而且,如果仅更改了最后一层(您提供的Dockerfile就是这种情况),则docker push将仅上传镜像的新层。所以在这种情况下,有关app.jar的大小...
关于spring - 在Docker镜像中更新jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38790278/