在Docker镜像中更新jar
问题描述:
我正在用下面的文件构建一个Docker镜像。这是一个简单的Spring Boot应用程序。 当我更新Spring项目时,我正在重建图像以获取更新的图像。然而,这是创造一个全新的图像,完全重新推向整个回购(700 + MB)。如何更新现有图像以包含新更新的jar而不是全新的图像,以便我不必为了更新Spring应用程序而推送700 + MB?在Docker镜像中更新jar
这是我目前使用的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镜像是真正的路径和声音是你想要的。
如果只有最后一层被改变(Dockerfile提供的情况就是这样)docker push只会上传新图层的图层。所以在这种情况下,有关app.jar的大小...
伟大的,就是这样。我撞到了版本号,而不是用相同的版本号重新构建。结果,它只推动了特定的层,而不是所有的层。谢谢! –