2016-08-05 13 views
0

Ich baue ein Docker Bild mit der folgenden Datei. Es ist eine einfache Spring Boot App. Wenn ich das Spring-Projekt aktualisiere, baue ich das Image neu, um das aktualisierte Image zu erhalten. Dies erzeugt jedoch ein völlig neues Bild, das vollständig in das Repo in seiner Gesamtheit (700 + MB) zurückgeschoben wird. Wie aktualisiere ich ein vorhandenes Bild, um das neu aktualisierte Jar anstelle eines vollständig neuen Images zu enthalten, sodass ich nicht nur 700 + MB hochladen muss, um die Spring App zu aktualisieren?Updating jar in docker image

Dies ist dockerfile ich zur Zeit bin mit:

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"] 

Hinweis: Wenn ich die Docker befestigen Befehl ausführen, es gibt nur sitzt und nichts tut.

Antwort

1

Es sieht so aus, als hätten Sie einen Punkt von Docker-Containern/Bildern verpasst. Neue App-Version ==> neues Docker Bild ist wahrer Pfad und klingt, was Sie wollen.

Und wenn nur letzte Schicht geändert wird (das ist der Fall mit Dockerfile, die Sie zur Verfügung gestellt) Docker Push wird nur die neue Schicht des Bildes hochladen. Also in diesem Fall etwas über die Größe von app.jar ...

+0

Großartig, das war es. Ich stieß auf die Versionsnummer, anstatt sie mit derselben Versionsnummer neu zu erstellen. Als Ergebnis wurde nur die spezifische Ebene und nicht alle von ihnen erneut hochgedrückt. Vielen Dank! –