VorwortBeim Bereitstellen eines Projekts müssen Sie möglicherweise auf node.js, Redis, RabbitMQ, MySQL usw. zurückgreifen. Die für die Bereitstellung dieser Dienste erforderlichen Funktionsbibliotheken und Abhängigkeiten sind unterschiedlich und können sogar miteinander in Konflikt geraten. Dies brachte große Schwierigkeiten beim Einsatz mit sich. Docker hat diese Probleme geschickt gelöst. Um die Kompatibilitätsprobleme von Abhängigkeiten zu lösen, verwendet Docker zwei Methoden:
In diesem Artikel wird erklärt, wie Sie Docker zum Bereitstellen der Projekte verwenden, die wir normalerweise mit SpringBoot entwickeln: Docker-DateiWas ist ein Dockerfile?Dockerfile ist eine Textdatei, die zum Erstellen eines Images verwendet wird. Der Textinhalt enthält die Anweisungen und Anleitungen, die zum Erstellen des Images erforderlich sind. Dockerfile-SyntaxBeim Erstellen eines benutzerdefinierten Images müssen Sie nicht jede Datei einzeln kopieren und verpacken. Wir müssen Docker nur die Zusammensetzung unseres Images mitteilen, welche BaseImages benötigt werden, welche Dateien kopiert werden müssen, welche Abhängigkeiten installiert werden müssen und was das Startskript ist. In Zukunft wird uns Docker beim Erstellen des Images helfen. Die Datei, die die obigen Informationen beschreibt, ist die Dockerfile-Datei. Dockerfile ist eine Textdatei, die Anweisungen enthält, die beschreiben, welche Vorgänge zum Erstellen eines Images ausgeführt werden müssen. Jeder Befehl bildet eine Ebene. Verpacken des SpringBoot-ProjektsVorbereitungsprojekt: Projekt-Port server.port=8080 Erstellen Sie eine neue index.html im Vorlagenordner <!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <Kopf> <meta charset="UTF-8"> <title>Docker-Bereitstellung der SpringBoot-Anwendung</title> </Kopf> <Text> <h1>Docker-Bereitstellung von SpringBoot-Anwendungen</h1> <img src="/static/img/2.jpg" alt="" width="100%"> </body> </html> Definieren Sie den Homepage-Controller und springen Sie zum Index @Regler öffentliche Klasse IndexController { @RequestMapping("/") öffentlicher Stringindex(){ gib "Index" zurück; } } Zeigen Sie den Effekt lokal in der Vorschau an: Verpacken Sie die SpringBoot-Anwendung lokal in ein JAR-Format.Bereiten Sie das Plugin „maven-compiler-plugin“ vor <Bauen> <!--Name der kompilierten und gepackten Datei--> <finalName>App</finalName> <Plugins> <Plugin> <!--GAV-Koordinaten (G-Organisations-ID, A-Projekt-ID, V-Versionsnummer)--> <groupId>org.apache.maven.plugins</groupId> <artifactId>Maven-Compiler-Plugin</artifactId> <version>3.8.1</version> <!--Konfiguration: Im Allgemeinen sind Ziel und Quelle konsistent. Manchmal kann es jedoch vorkommen, dass sich Ziel und Quelle unterscheiden -->, damit das Programm in anderen Versionen des JDK ausgeführt werden kann (bei einem Ziel-JDK mit niedrigerer Version kann der Quellcode keine Syntax verwenden, die von der niedrigeren Version des JDK nicht unterstützt wird). <Konfiguration> <!--Vom Quellcode verwendete JDK-Version--> <Quelle>1.8</Quelle> <!-- Die kompilierte Version der zu generierenden Zielklassendatei--> <target>1,8</target> <!-- Zeichensatzkodierung um chinesische Zeichenverfälschungen zu verhindern --> <Kodierung>UTF-8</Kodierung> </Konfiguration> </plugin> </plugins> </bauen>
Führen Sie dann clean aus und führen Sie schließlich package aus, um das Projekt zu verpacken Die Meldung „BUILD SUCCESS“ zeigt an, dass das Paket erfolgreich abgeschlossen wurde. Nach erfolgreicher Verpackung wird der Zielordner angezeigt und das gerade verpackte JAR-Paket befindet sich im Verzeichnis Bereiten Sie das JAR-Paket und die Docker-Datei vor Kopieren Sie das JAR auf den Desktop oder an einen benutzerdefinierten Speicherort und erstellen und schreiben Sie die Dockerfile-Datei lokal ( Schreiben einer Docker-DateiDockerfile-Anweisungen VON java:8-alpine KOPIEREN ./app.jar /tmp/app.jar EINSTIEGSPUNKT java -jar /tmp/app.jar Dockerfile-Beschreibung VON java:8-alpine: Erstellen Sie ein Image basierend auf Java8. Standardmäßig erfordert das Erstellen eines Java-Images die Installation und Konfiguration von Umgebungsvariablen. Das Image java:8-alpine hat alle vorherigen Schritte bereits für uns ausgeführt. KOPIEREN ./app.jar /tmp/app.jar Kopieren Sie das JAR-Paket EINSTIEGSPUNKT java -jar /tmp/app.jar Eingabebefehl Verwenden Sie das Tool, um das JAR und das Dockerfile auf den Server hochzuladenDer Upload-Speicherort ist individuell. Ich speichere es unter: /tmp/docker CD tmp mkdir Docker Wählen Sie „Datei hochladen“ In das Verzeichnis Erstellen des Images Geben Sie das Verzeichnis ein, in das Sie die Datei hochgeladen haben: Geben Sie den Befehl zum Erstellen des Images ein Docker-Build -t Test:1.0.
Befehlserklärung:
Sie können sehen, dass beim Erstellen des Images die Ausführung in drei Schritten erfolgt, und zwar gemäß den drei Befehlen, die wir in Dockerfile geschrieben haben Spiegel anzeigenZeigen Sie den Image-Befehl in Docker an: Docker-Bilder Sie können unseren benutzerdefinierten Bildtest sehen Erstellen und Ausführen des ContainersFühren Sie den Docker-Image-Befehl aus: docker run --name springboot -p 8080:8080 -d test:1.0 Befehlserklärung:
Der Container wurde erfolgreich erstellt und ausgeführt! Sehen Sie sich das laufende Bild anAusführen des Image-Befehls Docker PS Der Browser greift auf den Port 8080 des Servers zu Mobiler Zugriff: Protokolle anzeigenBefehl „Containerprotokoll anzeigen“ Docker-Protokolle -f Springboot veranschaulichen: Containerprotokolle anzeigen, diese werden jedoch nicht in Echtzeit aktualisiert. Sie müssen es erneut ausführen, wenn Sie neue Protokolle anzeigen möchten Docker-Protokolle + Containername Echtzeit-Update-Protokoll Docker-Protokolle -f + Containername Das Tutorial zur Docker-Bereitstellung der SpringBoot-Anwendung ist vorbei! Dies ist das Ende dieses Artikels über die Docker-Bereitstellung von SpringBoot-Anwendungen. Weitere relevante Inhalte zur Docker-Bereitstellung von SpringBoot-Anwendungen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Diskussion über Standard-Rand- und Füllwerte allgemeiner Elemente
>>: Reines CSS, um einen automatischen Rotationseffekt des Karussellbanners zu erzielen
Inhaltsverzeichnis Vorwort Einführung Live Einfac...
Dieser Artikel stellt die automatische Build-Bere...
1. Alipay-Methode: Alipay-Methode: Klicken Sie zu...
Wenn es um den Verzeichniswechsel unter Linux geh...
Ein neues Fenster wird geöffnet. Vorteile: Wenn d...
1. Was sind CSS-Methoden? CSS methodologies könne...
Inhaltsverzeichnis 1. Demo-Projekt 1.1 Schnittste...
Bei vielen Benutzern ist dieser Fehler beim Start...
Bei der Optimierung einer Website müssen wir lern...
Ich habe das Tutorial auf W3school durchgearbeitet...
Inhaltsverzeichnis 1. Docker-Datei 2. POM-Konfigu...
Manchmal müssen wir steuern, ob HTML-Elemente auf ...
Inhaltsverzeichnis 1. E-Mail 2. Mobiltelefonnumme...
1. Float: Der Hauptzweck besteht darin, den Effek...
Scrcpy-Installation snap install scrcpy Installat...