Implementierung des Docker-Buildings für Maven+Tomcat-Basisimages

Implementierung des Docker-Buildings für Maven+Tomcat-Basisimages

Vorwort

In der Java-Programmierung werden die meisten Anwendungen auf Basis von Maven erstellt und die gelieferten Ergebnisse liegen meist in Form von Tomcat-War-Paketen vor. Daher ist es notwendig, ein Basisimage auf Basis von Maven und Tomcat zu erstellen. Dies kann uns nicht nur dabei helfen, die Effizienz unserer täglichen unabhängigen experimentellen Forschung und Analyse zu verbessern, sondern auch den Betrieb und die Wartung bis zu einem gewissen Grad zu reduzieren, die Komplexität des Schreibens von Dockerfiles zu verringern und die Gesamteffizienz der Projektabwicklung zu verbessern.

1. Erstellen Sie ein Kompilierungsverzeichnis

mkdir -p build_docker
cd build_docker
vim Docker-Datei

2. Dockerfile schreiben

Zuerst wählen wir das offiziell gepflegte Image maven:3.3.3 als Basis-Image aus und fügen dann auf dieser Basis die Tomcat-Unterstützung hinzu.

VON maven:3.3.3

Wenn Ihnen die Geschwindigkeit inländischer Lager gefällt, können Sie auch Alibabas maven:3-jdk-8 wählen.

VON registry.cn-hangzhou.aliyuncs.com/acs/maven:3-jdk-8

Zweitens legen Sie Tomcat-bezogene Umgebungsvariablen fest und fügen Sie sie der System-PATH-Variable hinzu, sodass auf das Startskript von Tomcat direkt in der Shell zugegriffen werden kann.

ENV CATALINA_HOME /usr/local/tomcat
ENV-PFAD $CATALINA_HOME/bin:$PATH
RUN mkdir -p "$CATALINA_HOME"
ARBEITSVERZEICHNIS $CATALINA_HOME

Drittens fügen Sie Tomcat GPG-KEY hinzu, mit dem überprüft wird, ob die Datei korrekt ist, nachdem Tomcat sie heruntergeladen hat. Die folgenden Schlüssel-ID-Daten stammen vom offiziellen Tomcat-8.

Führen Sie den Befehl gpg --keyserver pool.sks-keyservers.net --recv-keys \ aus.
F22C4FED \
86867BA6 \
E86E29AC \
307A10A5 \
564C17A3 \
0x7C037D42 \
0BECE548 \
5E763BEC \
2F6059E7 \
288584E7 \
4B6FAEFB \
286BACF1 \
731FABEE \
461B342D \
0D498E23 \
DC3D1B18 \
D63011C7 \
30480593

Viertens legen Sie die Tomcat-Versionsvariable fest. Sie können die entsprechenden Parameter übergeben, um die Tomcat-Version während des Builds zu ändern. Da die Java-Version, von der das maven:3.3.3-Image abhängt, 1.8 ist, wählen wir auch für Tomcat die Version 8.X. Durch Beibehaltung der Kompilierungskonsistenz kann die Leistung von Tomcat maximiert werden.

Hier wählen wir die neuste Version: 8.5.45

Verwenden Sie dann Curl zum Herunterladen, dekomprimieren Sie es nach der Überprüfung und löschen Sie das redundante Bat-Skript. (Dieses Skript wird nur in der Windows-Umgebung verwendet und ist in Linux/Mac-Images nutzlos)

ENV TOMCAT_VERSION 8.5.45
ENV TOMCAT_TGZ_URL https://www.apache.org/dist/tomcat/tomcat-8/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz

RUN set -x \
  && curl -fSL "$TOMCAT_TGZ_URL" -o tomcat.tar.gz \
  && curl -fSL "$TOMCAT_TGZ_URL.asc" -o tomcat.tar.gz.asc \
  && gpg --verify tomcat.tar.gz.asc \
  && tar -xvf tomcat.tar.gz --strip-components=1 \
  && rm bin/*.bat \
  && rm tomcat.tar.gz*

Fünftens: Geben Sie Tomcats Standardport 8080 frei und geben Sie ein Skript an, das ausgeführt werden soll, wenn der auf diesem Image basierende Container gestartet wird. Dieses Skript ist das Tomcat-Startskript.

EXPOSE 8080
CMD ["catalina.sh", "ausführen"]

3. Erstellen Sie das Image

Docker-Build -t Base-Maven-Tomcat.

Das war's, erledigt.

Anhang: Komplette Dockerfile-Datei

VON maven:3.3.3

ENV CATALINA_HOME /usr/local/tomcat
ENV-PFAD $CATALINA_HOME/bin:$PATH
RUN mkdir -p "$CATALINA_HOME"
ARBEITSVERZEICHNIS $CATALINA_HOME

Führen Sie den Befehl gpg --keyserver pool.sks-keyservers.net --recv-keys \ aus.
F22C4FED \
86867BA6 \
E86E29AC \
307A10A5 \
564C17A3 \
0x7C037D42 \
0BECE548 \
5E763BEC \
2F6059E7 \
288584E7 \
4B6FAEFB \
286BACF1 \
731FABEE \
461B342D \
0D498E23 \
DC3D1B18 \
D63011C7 \
30480593

ENV TOMCAT_VERSION 8.5.45
ENV TOMCAT_TGZ_URL https://www.apache.org/dist/tomcat/tomcat-8/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz

RUN set -x \
  && curl -fSL "$TOMCAT_TGZ_URL" -o tomcat.tar.gz \
  && curl -fSL "$TOMCAT_TGZ_URL.asc" -o tomcat.tar.gz.asc \
  && gpg --verify tomcat.tar.gz.asc \
  && tar -xvf tomcat.tar.gz --strip-components=1 \
  && rm bin/*.bat \
  && rm tomcat.tar.gz*

EXPOSE 8080
CMD ["catalina.sh", "ausführen"]

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Docker erstellt eine Jenkins+Maven-Plattform zum Erstellen und Bereitstellen von Code
  • Implementierungsschritte des Maven-Plugins zum Erstellen eines Docker-Images
  • So verwenden Sie das Maven-Plugin zum Erstellen von Bildern in Docker
  • Eine kurze Erläuterung zum Erstellen von Docker-Images mit Maven-Plugins
  • Maven-Projekte schneller in Docker erstellen

<<:  So integrieren Sie die grafische Verifizierungscode-Komponente in die Ant Design Pro-Anmeldefunktion

>>:  MySQL implementiert Ranking und fragt die angegebene Benutzer-Ranking-Funktion ab (parallele Ranking-Funktion) Beispielcode

Artikel empfehlen

Zusammenfassung von 3 Möglichkeiten zum verzögerten Laden eines Vue-Routers

Kein Lazy Loading verwenden importiere Vue von „v...

Analyse des MySQL-Client-Installationsprozesses auf dem Mac

Versuchen Sie die Installation über Pip in einer ...

Eine kurze Diskussion über den Unterschied zwischen src und href in HTML

Einfach ausgedrückt bedeutet src „Ich möchte dies...

MySQL extrahiert zufällig eine bestimmte Anzahl von Datensätzen

Früher habe ich zur Handhabung dieser Art von Nut...

JavaScript Canvas realisiert dynamische Punkt- und Linieneffekte

In diesem Artikel wird der spezifische Code für J...

Prinzip des Ladens von Docker-Images

Inhaltsverzeichnis Docker-Images Was ist ein Spie...

Beschreibung der HTML-Meta-Viewport-Attribute

Was ist ein Ansichtsfenster? Mobile Browser platz...

JavaScript implementiert die Klick-Umschaltfunktion

In diesem Artikelbeispiel wird der spezifische Ja...

JavaScript zum Erreichen eines dynamischen Farbwechsels der Tabelle

In diesem Artikel wird der spezifische Code für J...

Detaillierte Erklärung des Unterschieds zwischen in und exists in MySQL

1. Bereiten Sie sich im Voraus vor Zu Ihrer Beque...

Führen Sie die Schritte zum Aktivieren der GZIP-Komprimierung in Nginx aus.

Inhaltsverzeichnis Vorwort 1. Konfigurieren Sie d...