Docker-Image-Kombination: Mehrere Bilder zu einer einzigen Ebene zusammenführen
Das Kombinieren mehrerer Docker-Images zu einem einzigen einheitlichen Image ist eine Funktion, die von Docker nicht nativ unterstützt wird. Das von einem Open-Source-Mitarbeiter entwickelte DockerMake-Tool bietet jedoch eine Lösung für diesen Bedarf.
DockerMake verwendet eine YAML-Konfigurationsdatei, um die Zusammensetzung des Zielbilds zu definieren. Diese Datei gibt die Basis-Images an, die zum endgültigen Image beitragen, sowie alle erforderlichen Build-Anweisungen. Stellen Sie sich das Beispielszenario vor, in dem Sie ein Image erstellen möchten, das sowohl Java- als auch MySQL-Funktionen enthält.
Mit DockerMake können Sie eine DockerMake.yml-Datei mit der folgenden Struktur erstellen:
specificAB: requires: - genericA - genericB genericA: requires: - customBase build_directory: [local directory path] build: | # Dockerfile commands for genericA # e.g., ADD installA.sh, RUN ./installA.sh genericB: requires: - customBase build: | # Dockerfile commands for genericB # e.g., RUN apt-get install -y genericB, ENV PATH=$PATH:something customBase: FROM: debian:jessie build: | # Dockerfile commands for customBase # e.g., RUN apt-get update && apt-get install -y build-essentials
aus. Um das spezifische AB-Image mit DockerMake zu erstellen, führen Sie einfach den Befehl aus:
docker-make specificAB
Dieser Befehl generiert die erforderlichen Docker-Dateien basierend auf der YAML-Konfiguration und führt den Build-Prozess durch, um letztendlich ein einheitliches Image zu erstellen, das die Funktionalität beider Java umfasst und MySQL.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3