Implementierung des Deployment-War-Package-Projekts mit Docker

Implementierung des Deployment-War-Package-Projekts mit Docker

Um War mit Docker bereitzustellen, müssen Sie einen Container verwenden. Wir verwenden den Tomcact-Container. Tatsächlich legen wir das War-Paket einfach in das Webapps-Verzeichnis von Tomcat ab. Wenn Tomcat gestartet wird, wird das War-Paket automatisch dekomprimiert.

Eine Möglichkeit besteht darin, das Tomcat-Container-Image in Docker zu installieren und dann das War-Paket in Webapps unter dem Tomcat-Image abzulegen. Wenn Tomcat jedoch geschlossen wird, verschwindet das Paket unter seinen Webanwendungen. Die zweite Möglichkeit besteht darin, die Bereitstellung zu verwenden und trotzdem das Image des Tomcat-Containers zu installieren, das War-Paket jedoch nicht in den Webanwendungen unter Tomcat abzulegen. Erstellen Sie direkt einen externen Ordner und verknüpfen Sie diesen externen Ordner mit Wabapps, sodass die Webanwendungen von Tomcat, wenn War in den neu erstellten Ordner abgelegt wird, auch das bereitgestellte War-Paket lesen können.

1. Installieren und starten Sie das Tomcat-Image

1. Suchen Sie unter Docker nach dem Tomcat-Image, vorausgesetzt, Docker befindet sich im gestarteten Zustand. Ich werde hier nicht erklären, wie Docker gestartet wird und wie es so eingestellt wird, dass es automatisch gestartet wird.

Docker-Suche Tomcat 

2. Laden Sie Docker nach Namen herunter und ziehen Sie docker.io/tomcat

3. Starten Sie Tomcat

 docker run -d -p 8088:8080 docker.io/tomcat

-d bedeutet Ausführung im Hintergrund, -p bedeutet Portzuordnung, der vordere 8088 ist der externe Zugriffsport (d. h. der Port, der durch die lokale IP für die Außenwelt geöffnet wird) und der hintere 8080 ist der Port innerhalb des Docker-Containers.

4. Durchsuchen Sie, um zu sehen, ob Tomcat gestartet ist

3. Wandeln Sie das Springboot-Projekt in ein War-Package-Projekt um

Ich bin es gewohnt, Springboot zu verwenden, und es ist mühsam, ein War-Paketprojekt zu erstellen. Also habe ich ein neues Springboot-Projekt erstellt und es dann in ein War-Projekt geändert. Wenn Sie bereits ein War-Paketprojekt haben, können Sie diesen Schritt überspringen.

1. Erstellen Sie ein Springboot-Projekt. Darüber werde ich nicht sprechen. Wenn Sie es brauchen, können Sie meinen anderen Blog lesen: Erstellen und verwenden Sie SpringBoot ganz einfach

2. Ändern Sie die Datei pom.xml

2.1 Ändern Sie das Glas in Krieg

2.2 Entfernen Sie den eigenen Tomcat des integrierten Webmoduls

2.3 Fügen Sie eine Servlet-Abhängigkeit hinzu, da sonst beim Verpacken ein Fehler auftritt

<Abhängigkeit>
  <groupId>javax.servlet</groupId>
	<artifactId>javax.servlet-api</artifactId>
	<version>3.1.0</version>
</Abhängigkeit>

2.4 Fügen Sie dem Projekt einen Alias ​​hinzu. Fügen Sie finalName unter dem Build-Tag hinzu, also den Projektnamen. Wenn Sie es nicht hinzufügen, ist der Projektname Ihre Artefakt-ID-Version und der Name des generierten War-Pakets ist ebenfalls Artefakt-ID-Version.war. Der Projektname wäre zu lang, wenn er über einen Browser aufgerufen würde. Dieser Schritt hängt von den persönlichen Vorlieben ab

3. Ändern Sie die Startklasse. Die Startklasse erbt SpringBootServletInitializer

4. Legen Sie das Kriegspaket unter die Webapps des Tomcat-Containers und starten Sie das Kriegspaket

1. Erstellen Sie einen Ordner, in dem das hochgeladene War-Paket gespeichert wird. Ich habe es im Stammverzeichnis abgelegt/

mkdir warPackage und übertragen Sie die Datei dann in dieses Verzeichnis

2. Kopieren Sie das War-Paket in das Webapps-Verzeichnis des Tomcat-Containers

2.1. Sie müssen die Container-ID des laufenden Tomcat-Containers kennen und Docker PS ausführen

2.2. Kopieren Sie das War-Paket in das Webapps-Verzeichnis des Tomcat-Containers. Das Befehlsformat lautet: docker cp xxx.war Paketpfad Container-ID:/zu kopierender Verzeichnispfad

docker cp /warPackage/dockerProject.war e591e16899c6:/usr/local/tomcat/webapps

2.3. Überprüfen Sie, ob es kopiert wurde

Geben Sie den Tomcat-Container in Docker ein: docker exec -it e591e16899c6 /bin/bash

Verlassen Sie den Container: exit

3. Starten Sie den Container neu: Docker-Neustart + Container-ID

4. Der Browser-Zugriffspfad lautet: der Port, auf den Sie gerade zugegriffen haben: Projektname/Schnittstellenname. Mein Projektname ist dockerProject. Docker ist ein einfacher Controller, den ich geschrieben habe.

5. Starten Sie das War-Paket über das Mount-Verzeichnis

Beim Mounten wird ein separates Verzeichnis auf dem Server erstellt und dann dem Pfad der Webanwendungen unter Tomcat zugeordnet, damit Tomcat Dateien im externen Ordner lesen kann.

1. Um Ärger zu vermeiden, verwende ich direkt den oben erstellten Ordner /warPackage

2. Mounten Sie das Verzeichnis, führen Sie den Tomcat-Container aus und stellen Sie ihn auf automatischen Neustart ein: --restart=always

docker run -d -p 8088:8080 -v /warPackage/:/usr/local/tomcat/webapps --restart=immer docker.io/tomcat

Wenn Sie dann das Tomcat-Verzeichnis aufrufen, können Sie sehen, dass es sich bereits unter Webapps befindet

3. Browserzugriff

Dies ist das Ende dieses Artikels über die Verwendung von Docker zum Bereitstellen von War-Paketprojekten. Weitere relevante Inhalte zur Bereitstellung von War-Paketen über Docker finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • So stellen Sie eigenständigen Pulsar und geclustertes Redis mit Docker bereit (Entwicklungsartefakt)
  • So verbinden Sie die Idee mit Docker, um eine Bereitstellung mit einem Klick zu erreichen
  • Beispiel für die Bereitstellung von MySQL 8.0 mit Docker
  • Best Practices für die Bereitstellung des ELK7.3.0-Protokollsammlungsdienstes mit Docker
  • Detaillierter Prozess der Installation und Bereitstellung von OnlyOffice in Docker

<<:  Lösen Sie das Problem der Kombination von AND und OR in MySQL

>>:  Eine elegantere Methode zur Fehlerbehandlung in JavaScript async await

Artikel empfehlen

CentOS7-Konfiguration Alibaba Cloud Yum-Quellmethodencode

Öffnen Sie den Centos Yum-Ordner Geben Sie den Be...

Detaillierte Erklärung zum Problem der CSS-Klassennamen

Die folgenden CSS-Klassennamen, die mit einer Zah...

Implementierung der CSS-Bildlaufleisten-Stileinstellungen

WebKit-Bildlaufleistenstil zurücksetzen 1. Die Bi...

Erläuterung synthetischer React-Ereignisse

Inhaltsverzeichnis Klicken Sie zunächst auf das E...

MySQL-Methode zur Sperrensteuerung für Parallelität

Inhaltsverzeichnis Vorwort 1. Optimistisches Sper...

MySQL fügt automatisch Millionen simulierter Datenoperationscodes ein

Ich verwende Navicat als Datenbanktool. Andere si...

Verwenden des CSS-Loaders zum Implementieren des CSS-Moduls in Vue-CLI

【Vorwort】 Sowohl die modularen CSS-Lösungen von V...

Implementierung der CSS-Variableneinfügung im Vue3-Stil

Inhaltsverzeichnis Zusammenfassung Einfaches Beis...

Super ausführliches Tutorial zur Installation von MySQL 8.0.23

Inhaltsverzeichnis Vorwort 1. Laden Sie MySQL von...

Tipps zur MySql-SQL-Optimierung teilen

Eines Tages stellte ich fest, dass die Ausführung...

So installieren Sie die grafische Benutzeroberfläche unter Linux

1. Linux-Installation (Root-Benutzerbetrieb) 1. I...

Lösung für MySql-Fehler 1698 (28000)

1. Problembeschreibung: MysqlERROR1698 (28000)-Lö...