Ich frage mich, ob eine env-Variable in einem Docker verwendet werden kann? Grund dafür ist die Kontrolle der Markierung. Zum Beispiel, sagen, dass ich diese Zeile in meinem Dockerfile haben:Kann eine Variable im Andockfenster FROM verwendet werden?
From myApp
Was ich will, ist dies:
From myApp:${VERSION}
So kann ich docker build . myApp --build-arg VERSION=9
Der Prozess sagen kann Docker Bilder für diese bauen App ist das gleiche. Ich möchte keine Dockerfiles haben, die fast identisch sind, nur um ein anderes Basis-Image zu verwenden. Wenn ich Version 9 erstellen möchte, sollte Version 9 des Basis-Images verwendet werden.
Aber mit diesem Ansatz Wie baue ich eine ältere Version? Wenn ich die Version 8 neu erstellen möchte, wird sie die neueste Version als Basis verwenden, was bedeutet, dass Version 9 nicht als Basis verwendet wird? Ich möchte nur einen einfachen Mechanismus, um Bild und Basisbild synchronisiert zu halten. – CodyK
Ich kann verstehen, dass Sie alle Arten von Versionen und Kombinationen pflegen und unterstützen möchten. Dies wird leicht unrealistisch, wenn man mit einem "nicht abwärtskompatiblen" Merkmal innerhalb seiner Bilder konfrontiert wird, z. neue Programmparameter. Der oben erwähnte Vorlagenmechanismus ist derzeit der beste, um damit umzugehen. Mein Rat ist, die Versionen in Ihren Umgebungen unter allen Umständen immer zu minimieren und eine Branch-per-Not-Down-Compatble-Version zu verwenden. Konzentrieren Sie sich nur darauf, die Bilder der neuesten Version zu verbessern und die Komplexität der Versionen und Zweige in Grenzen zu halten. – blacklabelops
Dieser spezielle Anwendungsfall wird aus vom Anbieter bereitgestellten Docker-Dateien erstellt. Wir werden die Dockerfiles überhaupt nicht ändern, aber angesichts der Art ihrer Architektur ist dies erforderlich. Ihre Bilder sind nicht auf Docker Hub. Also, was Sie tun müssen, ist die neue Version (ihres Werkzeugs) zu installieren und ein Skript auszuführen, um die Bilder zu erstellen. Dann verwenden Sie diese Bilder als Basisbilder. Danke für den Ratschlag. Ich werde daran denken. – CodyK