Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So aktualisieren Sie Code in der Docker-Datei

So aktualisieren Sie Code in der Docker-Datei

PHPz
PHPzOriginal
2023-04-18 10:20:422487Durchsuche

Docker hat sich zur beliebtesten Containerplattform für die moderne Anwendungsentwicklung entwickelt. Mithilfe von Docker können Sie Anwendungen, Dienste und ihre erforderlichen Abhängigkeiten in einer unabhängigen Laufzeitumgebung packen und so ihre Bereitstellung, Verwaltung und Skalierung vereinfachen. In Docker werden die zum Erstellen und Ausführen des Containers erforderlichen Bilder durch Anweisungen in der Docker-Datei definiert. Sobald ein Docker-Image erstellt und veröffentlicht wurde, kann es in der Vergangenheit nicht mehr geändert werden. Dank der kontinuierlichen Weiterentwicklung der Technologie ist es nun jedoch möglich, den Code in Docker-Dateien mit verschiedenen Methoden zu aktualisieren. In diesem Artikel wird erläutert, wie Sie Code in Docker-Dateien aktualisieren.

1. Den neuesten Code abrufen

Der einfachste Weg, den Code in der Docker-Datei zu aktualisieren, besteht darin, den neuesten Code mit dem Git-Pull-Befehl aus dem Code-Repository zu extrahieren. Wenn Ihr Anwendungscode beispielsweise auf GitHub gespeichert ist, können Sie die Codebasis mit dem folgenden Git-Befehl aktualisieren:

$ git pull origin master

Dadurch wird die lokale Codebasis aktualisiert und alle Änderungen werden auf Ihre Docker-Dateien angewendet. Wenn Ihr Code keine Abhängigkeiten oder andere Anforderungen aufweist, können Sie das Docker-Image nach der Aktualisierung des Codes neu erstellen.

2. Cache verwenden

Wenn Ihre Anwendung mehrere Abhängigkeiten aufweist oder eine große Anzahl von Dateien herunterlädt, müssen diese Abhängigkeiten bei jedem Update erneut heruntergeladen und erstellt werden Es kann viel Zeit und Ressourcen verschlingen. Um dieses Problem zu lösen, können Sie den Build-Cache von Docker verwenden. Mit dem Cache-Cache können Sie Docker-Images schneller erstellen und nur die geänderten Teile müssen neu erstellt werden.

Angenommen, die erste Zeile Ihrer Docker-Datei gibt ein Basis-Image an und verwendet apt-get, um eine Reihe von Paketen und Abhängigkeiten zu installieren. Dies führt dazu, dass Docker beim mehrmaligen Erstellen alle diese Pakete und Abhängigkeiten erneut herunterlädt. Wenn Sie jedoch Cache verwenden, beschleunigt Docker den Build erheblich, indem es die Hashes der im Build verwendeten Pakete und Abhängigkeiten vergleicht, um zu bestimmen, welche erneut heruntergeladen werden müssen und welche aus dem Cache wiederverwendet werden können.

Sie können die Verwendung des Cache-Cache steuern, indem Sie speziell formatierte Tags in den Anweisungen der Docker-Datei verwenden. Die folgende Anweisung verwendet beispielsweise den Image-Status des vorherigen Builds als Cache:

FROM myimage:1.0

Dies führt dazu, dass Docker beim Neuerstellen des Containers den Status des letzten Builds überprüft. Wenn sich der Inhalt und die Anweisungen der Docker-Datei im vorherigen Build nicht geändert haben, verwendet Docker die Ergebnisse des vorherigen Builds aus dem Cache-Cache wieder.

3. Verwenden von Docker Compose und Volume

Docker Compose ist ein Tool, mit dem Docker-Anwendungen mit mehreren Containern definiert und ausgeführt werden können. Mit Docker Compose können Sie Code in Docker-Dateien einfach aktualisieren. Wenn Ihre Docker-Datei beispielsweise in ihren CMD- oder ENTRYPOINT-Anweisungen auf ein oder mehrere Quellcodeverzeichnisse verweist, können Sie Docker Compose und Volume verwenden, um diese Quellcodeverzeichnisse zu aktualisieren. Durch die Definition eines Volumes mountet Docker Compose diese Verzeichnisse und aktualisiert sie mit dem neuesten Code, wenn der Container neu gestartet wird.

Das Folgende ist ein Beispiel für eine Docker Compose-Konfigurationsdatei:

version: "3"
services:
 web:
   image: myimage:1.0
   volumes:
     - .:/usr/src/app
   ports:
     - "5000:5000"

Dadurch wird ein Container mit dem Namen „web“ erstellt und das aktuelle Verzeichnis /usr/ im Container src/ zugeordnet. App-Pfad. Daher wird jedes Mal, wenn Docker Compose einen Container startet, das Quellcodeverzeichnis automatisch mit dem neuesten Code aktualisiert.

4. Verwenden Sie Git-basierte automatisierte Build- und Bereitstellungstools

Viele Git-basierte automatisierte Build- und Bereitstellungstools (wie Jenkins, Travis CI, Circle CI usw.) kann eine Automatisierung erreichen. Aktualisieren Sie den Code in der Docker-Datei. Diese Tools überwachen Ihr Code-Repository und lösen automatisch die Erstellung von Docker-Images aus, wenn neue Code-Commits oder Pushs erkannt werden.

In Jenkins können Sie beispielsweise einen Job namens „Automated Build“ erstellen, der bei jedem neuen Commit einen Build-Vorgang auslöst. Der Build-Vorgang führt die folgenden Schritte aus:

  • Den neuesten Code von Git abrufen
  • Den Code in der Docker-Datei aktualisieren
  • Docker-Image neu erstellen
  • Das erstellte Image in die Docker-Registrierung übertragen

Mit einem Tool wie diesem können Sie den Code in der Docker-Datei automatisch aktualisieren, ohne dass dies erforderlich ist für die manuelle Ausführung jeder Operation.

Fazit

Docker ist zu einem unverzichtbaren Werkzeug bei der Entwicklung und Bereitstellung von Anwendungen geworden. Docker bietet eine bequeme und standardisierte Möglichkeit, Anwendungen zu verpacken und zu verteilen. In Docker kann der Code in der Docker-Datei auf verschiedene Weise aktualisiert werden. In diesem Artikel werden einige gängige Methoden vorgestellt, z. B. das Abrufen des neuesten Codes, die Verwendung von Cache-Caching, die Verwendung von Docker Compose und Volume sowie die Verwendung von Git-basierten automatisierten Build- und Bereitstellungstools. Für welche Methode Sie sich auch entscheiden, stellen Sie sicher, dass Ihr Code immer auf dem neuesten Stand ist, damit Ihre Anwendung immer optimal aussieht.

Das obige ist der detaillierte Inhalt vonSo aktualisieren Sie Code in der Docker-Datei. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn