Ich migriere eine vorhandene Rails-Anwendung auf Docker und Docker-Compose. Es gibt einige Skripts, die nur bei der Erstellung der Container ausgeführt werden müssen, z. B. ein Skript, das die Prod-Datenbank in ein Volume kopiert und in Elasticsearch indiziert.Docker-Compose: Initialize vs Run
Ab dann, wenn ich die Container lokal für die Entwicklung starte, möchte ich nur den Rails-Entwicklungsserver und nicht alle Db-Init-Skripte ausführen. Ich könnte zwei docker-compose Dateien machen (sagen wir init
und run
), die die gleichen sind, mit Ausnahme der command:
Option auf dem Webapp-Container.
Gibt es einen besseren Weg?
„Wenn man verlängern, um einen Dienst, Links und volumes_from Konfigurationsoptionen nicht vererbt werden -. Sie werden diejenigen manuell jedes Mal, wenn Sie es erweitern definieren müssen“ Immer noch besser als eine komplett neue Docker-Compose-Datei zu erstellen, aber nicht so trocken wie es sein könnte. Ich möchte wirklich nur ein oder zwei Zeilen zwischen den zwei docker-compose-Dateien unterscheiden, so dass die Erweiterung docker-compose nur ein oder zwei Zeilen lang sein sollte. – cyniphile