2016-08-18 4 views
1

Ich lerne, wie man Docker in meinen Java/Spring basierten Anwendungen verwendet.Verwendung von Docker in der lokalen Entwicklung

Nach kurzer Recherche und dem Lesen einiger Tutorials habe ich Zweifel an der Verwendung von Docker in der täglichen Entwicklung. Ich spreche nicht über CI oder Produktionsumgebungen, nur lokal.

Normalerweise laufe ich z.B. eingebettete Tomcat mit MVN (Laufziel). Mit Docker Ansatz muss ich Anwendung verpacken, Container neu erstellen und dann neu starten (David Gageot bei DockerCon16 bestätigt das). Auf den ersten Blick wird es mehr Zeit brauchen. Jedes Mal, wenn die Änderung vorgenommen wird, sollte das neue Bild erstellt werden.

Wo ist der Vorteil bei der Verwendung von Docker localy? Natürlich weiß ich, dass die Anwendung "in der gleichen Umgebung wie in der Produktion" läuft.

Antwort

7

Sie haben einen sehr gültigen Punkt angesprochen und in Ihrem Szenario gibt es tatsächlich eine Zeitstrafe. Die großen Vorteile kommen, wenn "es funktioniert auf meinem Rechner" sollte es gut auf der Staging-, QA-Test-und Produktionsumgebungen unabhängig von Betriebssystem funktionieren.

Ich benutze Docker lokal für meine Java-Spring-Entwicklung, aber hauptsächlich für die schnelle und konsistente Erstellung von Datenbanken und Messaging-Systemen, von denen das Build/Projekt abhängt. Zum Beispiel habe ich eine Anwendung, die von MongoDB, MySQL, ElasticSearch und RabbitMQ abhängt. Ich habe Andockbilder für jedes von diesen und ein Andockfenster, um alle Dateien mit einem einzigen docker-compose up Befehl zu erstellen. Dies bedeutet, dass ich diese nicht manuell auf meinem Laptop installieren muss und es ist eine bessere Lösung, wenn Sie zu einem anderen Projekt wechseln, das verschiedene abhängige Datenbanken, Middleware usw. hat. Bevor ich von Projekten zu Projekten wechselte, musste ich manuell stoppen und Starten Sie diese Datenbanken, da sie so viel Speicherkapazität verbrauchen.

Docker hat auch Vorteile in einer lokalen Umgebung, wenn Sie eine Acceptance Test Suite (die wiederum von externen Dingen wie Datenbanken abhängt) in Ihrem Build haben - wiederum sind die Hauptvorteile wieder auf Konsistenz zurückzuführen, dh wenn es lokal läuft Lauf als Teil deines Jenkins Builds.

Mein Rat wird sein, es gibt defo Vorteile für Docker z. Unsere Builds sind heutzutage viel zuverlässiger und konfigurierbarer, verwenden sie aber nur dort, wo es Sinn macht - Docker ist kein Wundermittel. Z.B. Sie können entscheiden, dass es viel schöner ist, Tomcat in Eclipse auszuführen, da das Debuggen so viel einfacher ist (keine Notwendigkeit für eine Remote-Debugging-Sitzung).

Verwandte Themen