2016-08-05 109 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

偉大的,就是這樣。我撞到了版本號,而不是用相同的版本號重新構建。結果,它只推動了特定的層,而不是所有的層。謝謝! –