In Docker erfahren Sie, wie Sie mit mehreren Test / Prod-Build-Konfigurationen arbeiten

506
Michael Oryl

Wir testen Docker für die Bereitstellung unserer Apps. Was wir bisher mit den Interwebs nicht erreichen konnten, ist der Umgang mit den verschiedenen Laufzeitumgebungen, die wir in unserem Unternehmen verwenden.

Zur Vereinfachung sagen wir einfach, wir haben eine Testumgebung und eine Produktionsumgebung. Wenn ich Application-X in der Testumgebung bereitstellen würde, würde ich eine Befehlszeilenoption an Maven oder Gradle übergeben, die dazu führt, dass eine bestimmte Konfiguration verwendet wird, die beispielsweise auf Service-X-Test verweist.

Bei der Bereitstellung für die Produktion würde Application-X mit einer Konfiguration erstellt, die stattdessen auf Service-X-Prod verweist.

Kann Docker mit so etwas umgehen, oder verpasse ich den Sinn von Docker völlig?

Wir haben einige Apps, die neuer sind und diese Konfiguration zur Laufzeit mithilfe von Spring- und Groovy-Skripts verwalten. Diese sind jedoch eher die Ausnahme als die Regel. Docker scheint mit diesen neuen Apps sehr gut zu funktionieren.

2

1 Antwort auf die Frage

1
Howard Lee

Siehe diese Präsentation:

Lehren aus der Verwendung von Docker zur Steigerung der Produktivität von Webentwicklern

Springen Sie bis 21:09 vorwärts. Die Lösung besteht darin, einen festen Domänennamen zu verwenden (in Ihrem Fall Service-X-Prod). In der Entwicklertestumgebung müssen Sie die Datei / etc / hosts so konfigurieren, dass Datenverkehr auf Service-X-Prod verweist und stattdessen an Service-X-Test weitergeleitet wird.

Ich denke, es ist eine echte Lösung, da es zwei Dinge erreicht: Bewahren Sie die Integrität der Container, indem Sie den Verkehr aufgrund von Umgebungsänderungen nicht umleiten müssen, und nicht mehr separate Konfigurationen für Test und Produkt.