2016-08-05 75 views
0

我正在用下面的文件构建一个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"] 

注:当我运行泊坞窗附加命令,它只是坐在那里,什么都不做。

回答

1

看起来你错过了码头集装箱/图像的一个点。 新的应用程序版本==>新的Docker镜像是真正的路径和声音是你想要的。

如果只有最后一层被改变(Dockerfile提供的情况就是这样)docker push只会上传新图层的图层。所以在这种情况下,有关app.jar的大小...

+0

伟大的,就是这样。我撞到了版本号,而不是用相同的版本号重新构建。结果,它只推动了特定的层,而不是所有的层。谢谢! –