Docker Compose stellt ein SpringBoot-Projekt bereit, um eine Verbindung zu MySQL herzustellen, und die dabei auftretenden Fallstricke

Docker Compose stellt ein SpringBoot-Projekt bereit, um eine Verbindung zu MySQL herzustellen, und die dabei auftretenden Fallstricke

Zuvor haben wir Docker verwendet, um das SpringBoot-Projekt einfach bereitzustellen, und vorgestellt, was Dockerfile ist.如果是鏡像比較多的情況下如何一鍵交付呢?Docker-compose! Wenn Sie Docker-Compose verstehen, wird es später einfacher sein, K8s zu verstehen.

1. Installieren Sie Docker-Compose

Umgebung CentOS 7

//Laden Sie Docker-Compose herunter
curl -L "https://get.daocloud.io/docker/compose/releases/download/1.27.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

//Fügen Sie der Datei ausführbare Berechtigungen hinzu, da der Root-Benutzer sonst keine Berechtigung hat chmod +x /usr/local/bin/docker-compose

//Überprüfen Sie, ob die Installation erfolgreich ist [root@SJS local]# docker-compose --version
Docker-Compose-Version 1.27.3, Build 4092ae5d

Allgemeine Befehle

#Erstellen, Erstellen und Starten zugehöriger Container docker-compose up -d

#Stoppen Sie alle zugehörigen Container docker-compose stop

#Liste aller Containerinformationen docker-compose ps

2. Bereitstellungsschritte

  1. 1. Verwenden Sie Dockerfile, um die Anwendungsumgebung zu definieren. Dies ist normalerweise nur erforderlich, wenn Sie das anfängliche Imageverhalten ändern müssen.
  2. 2. Verwenden Sie docker-compose.yml, um den bereitzustellenden Anwendungsdienst zu definieren, damit das Skript einmal bereitgestellt werden kann
  3. 3. Verwenden Sie den Befehl docker-compose up, um alle Anwendungsdienste gleichzeitig bereitzustellen

3. SpringBoot-Projekt bereitstellen

Gesamtprojekt

Bildbeschreibung hier einfügen

1. Dockerfile schreiben

VON java:8
# Erstellen Sie ein Container-Volume im Docker-Container zur Datenspeicherung und -persistenz VOLUME /tmp
#Wird zum Kopieren und Dekomprimieren von Dateien verwendet (COPY kann nicht dekomprimieren)
#Kopieren Sie die aktuelle Datei redpacket-backend-1.0.0-SNAPSHOT.jar in das Stammverzeichnis des Docker-Containers ADD redpacket-backend-1.0.0-SNAPSHOT.jar app.jar
#Erstellen Sie während des Ausführungsprozesses eine app.jar-Datei RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
#Führen Sie den Linux-Befehl mit den übergebenen Parametern aus, um das JAR-Paket zu starten. #Der Unterschied zwischen CMD besteht darin, dass nur der letzte von mehreren CMD-Befehlen wirksam wird und CMD nach dem Docker-Ausführungsvorgang durch die Parameter ersetzt wird. #Der von ENTRYPOINT ausgeführte Befehl wird angehängt und überschreibt ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] nicht.

2. Schreiben Sie die Datei docker-compose.yml

Dieses Dokument ist in drei Hauptteile gegliedert

Projekt: Die gesamte YML-Datei ist ein Projektdienst: Der Dienstknoten ist der Dienstcontainer: Der Dienst ist der Container

Version: '3.8'
Leistungen:
  #mysql-Dienstname mysql:
    #Verwendetes Bild: mysql:5.7
    Befehl: --default-authentication-plugin=mysql_native_password
    Häfen:
      -3306:3306
    Umfeld:
      MYSQL_ROOT_HOST: '%'
      MYSQL_ROOT_PASSWORD: '123456'
      MYSQL_ALLOW_EMPTY_PASSWORD: 'nein'
      MYSQL_DATABASE: "redpacket"
      MYSQL_USER: "root"
      MYSQL_PASSWORD: '123456'
    #Dateivolumes, die gemountet werden müssen:
      – /meineDaten/mysql/data:/var/lib/mysql
      – /meineDaten/mysql/log:/var/log/mysql
      - /meineDaten/mysql/conf:/etc/mysql
    Neustart: immer
    Netzwerke:
      -Testnetzwerk
  #SpringBoot-Projektdienst Redpacket:
    Containername: Redpacket
    #Erstellen Sie das Dockerfile im angegebenen Verzeichnis
    bauen:
      Kontext: .
      Dockerdatei: Dockerdatei
    hängt ab von:
      -mysql
    Häfen:
      - „8090:8090“
    Neustart: immer
    Netzwerke:
      -Testnetzwerk
Netzwerke:
  Testnetzwerk:

3. Achten Sie darauf, den Linknamen der YML-Datei zu ändern

Bildbeschreibung hier einfügen

4. Starten Sie das Projekt mit einem Klick

Legen Sie das Dockerfile, die Datei docker-compose.yml und das JAR-Paket des Projekts in dasselbe Verzeichnis und starten Sie es mit docker-compose

Bildbeschreibung hier einfügen

Es gelang

Bildbeschreibung hier einfügen

4. Fallstricke

Sollten Sie das Dockerfile während der Nutzung verändern,一定要把之前的鏡像刪掉! Andernfalls wird, selbst wenn der Befehl „docker-compose up“ erfolgreich ist, das vorherige Image nicht neu erstellt, sondern nur ein neuer Container erstellt.

Referenzartikel:

https://mp.weixin.qq.com/s/iMl9bJ4SxUsNHBbiS5VUcw

https://docs.docker.com/compose/env-file/

https://blog.csdn.net/u011943534/article/details/81392993

Dies ist das Ende dieses Artikels über die Docker-Compose-Bereitstellung eines SpringBoot-Projekts zur Verbindung mit MySQL. Weitere relevante Inhalte zur Docker-Compose-Bereitstellung eines SpringBoot-Projekts finden Sie in den vorherigen Artikeln von 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:
  • Implementierung eines Docker-Compose-Bereitstellungsprojekts basierend auf MySQL8
  • So führen Sie MySQL mit Docker-Compose aus
  • Verwenden Sie Dockercompose, um eine Springboot-MySQL-Nginx-Anwendung zu erstellen
  • Eine kurze Analyse des Problems, dass MySQL bei der Bereitstellung mit Docker-Compose nicht zugänglich ist
  • So erstellen Sie ein Elk-System mit Docker Compose
  • Detaillierter Prozess zum Erstellen von MongoDB und MySQL mit Docker-Compose

<<:  Verwenden Sie die Clip-Path-Eigenschaft von CSS, um unregelmäßige Grafiken anzuzeigen

>>:  Fortgeschrittenes Front-End, das Ihnen die Verwendung der Javascript-Speicherfunktion beibringt

Artikel empfehlen

base target="" gibt das Ziel des Basislinks zum Öffnen des Frames an

<base target=_blank> ändert den Zielrahmen d...

So legen Sie den Fokus auf HTML-Elemente fest

Code kopieren Der Code lautet wie folgt: <Körp...

Implementierungsidee zur Linksausrichtung der letzten Zeile des Flexbox-Layouts

Wenn es sich bei der Verwendung des Flex-Layouts ...

Natives JS zum Erzielen eines Schiebeknopfeffekts

Der spezifische Code des mit Js erstellten Schieb...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.11 Zip

1. Laden Sie das MySQL 5.7.11 Zip-Installationspa...

Vue implementiert Div-Rad zum Vergrößern und Verkleinern

Implementieren Sie das Vergrößern und Verkleinern...

Die Rolle der neuen Feature-Window-Funktionen von MySQL 8

Zu den neuen Funktionen in MySQL 8.0 gehören: Vol...

Mysql NULL verursachte die Grube

Verwenden von NULL in Vergleichsoperatoren mysql&...

Detaillierte Schritte zum Konfigurieren von my.ini für mysql5.7 und höher

Im entpackten Paket von Windows 64-Bit MySQL 5.7 ...

Implementierung von Linux-Dateisystemvorgängen

In dieser Lesenotiz werden hauptsächlich die Vorg...

So schreiben Sie eine Node.JS-Version eines Spiels

Inhaltsverzeichnis Überblick Build-Prozess Verwan...