Docker-Compose-Schritte zum Konfigurieren der Spring-Umgebung

Docker-Compose-Schritte zum Konfigurieren der Spring-Umgebung

Vor Kurzem musste ich das Projekt für die Mitglieder zum Testen verpacken, aber der Verpackungsvorgang wird die Entwicklung beeinträchtigen. Daher plane ich, docker zu verwenden, um die Produktionsumgebung zum Ausführen des verpackten Projekts zu simulieren, sodass ich es gleichzeitig für die Mitglieder entwickeln und testen kann.

Da das ursprüngliche Projekt zu groß war, plante ich, es mit einem großen Softwareentwicklungsexperiment auszuprobieren. Das große Softwareentwicklungsexperiment verwendete spring-boot,redis,mysql,angular,nginx Umgebungen. Ich probierte zuerst docker Build von spring-boot,redis,mysql im Hintergrund aus.

Docker-Compose

Das compose -Projekt ist ein offizielles Open-Source-Projekt von Docker, das für die schnelle Orchestrierung von Docker-Container-Clustern verantwortlich ist. compose ist eine Anwendung, die mehrere Docker-Container definiert und ausführt.

Wir alle wissen, dass ein Anwendungscontainer mithilfe einer Dockerfile -Vorlagendatei erstellt werden kann, aber normalerweise werden in einem Projekt mehrere Anwendungscontainer benötigt, genau wie mein Backend, das Anwendungen wie jdk8 , redis und mysql gleichzeitig benötigt. docker-compose erfüllt genau dieses Bedürfnis. Es ermöglicht Benutzern, eine Gruppe verwandter Anwendungscontainer über eine einzelne docker-compose.yml -Vorlagendatei als Projekt zu definieren.

Zwei wichtige Konzepte beim compose :

Dienst: Ein Container für eine Anwendung, der tatsächlich mehrere Containerinstanzen enthalten kann, auf denen dasselbe Image ausgeführt wird.
Projekt: Eine vollständige Geschäftseinheit, die aus einer Reihe verwandter Anwendungscontainer besteht, die in der Datei docker-compose.yml definiert sind.

Der Dienst ist docker Container, den wir brauchen, und das Projekt besteht aus vielen Diensten. Nachdem Sie docker-compose verstanden haben, können Sie die Umgebung erstellen.

Erstellen Sie Spring-Boot

Um spring-boot zu kompilieren, folgen Sie dem folgenden Prozess:

  • Basierend auf einem JDK8-Image
  • Kopieren Sie mvnw und pom.xml unter Spring-Boot in den Container und importieren Sie die Maven-Abhängigkeit.
  • Kopieren Sie den Quellcode im src-Verzeichnis in den Container und verwenden Sie Maven, um das Spring-Boot-Projekt zu verpacken
  • Führen Sie das Projekt in der jre8-Umgebung aus

Erstellen Sie das Dockerfile :

#### Erstellen Sie das Spring-Boot-Projekt von openjdk:8-jdk-alpine als Build

# Legen Sie das Projektarbeitsverzeichnis WORKDIR /app im Docker-Container fest

# Kopieren Sie das ausführbare Maven-Programm in den Container COPY mvnw.
KOPIEREN .mvn .mvn

# Datei pom.xml kopieren KOPIEREN pom.xml .

# Alle Maven-Abhängigkeiten importieren RUN ./mvnw dependency:go-offline -B

# Den Quellcode des Projekts kopieren COPY src src

# Verpacken Sie die Anwendung. RUN ./mvnw package -DskipTests
RUN mkdir -p Ziel/Abhängigkeit && (cd Ziel/Abhängigkeit; jar -xf ../*.jar)

#### Legen Sie den minimalen Docker-Container fest, der die Anwendung von openjdk:8-jre-alpine ausführen kann.

ARG DEPENDENCY=/App/Ziel/Abhängigkeit

# Projektabhängigkeiten aus der Build-Phase kopieren
KOPIEREN --from=build ${DEPENDENCY}/BOOT-INF/lib /app/lib
KOPIEREN --from=build ${DEPENDENCY}/META-INF /app/META-INF
KOPIEREN --from=build ${DEPENDENCY}/BOOT-INF/classes /app

EINSTIEGSPUNKT ["java","-cp","app:app/lib/*","com.xiang.airTicket.AirTicketApplication"]

Docker-Compose integrierte Projektdienste

Nachdem Sie die Konstruktion des Spring-Boot-Containers abgeschlossen haben, können Sie docker-compose verwenden, um spring-boot、redis、mysql Container zu integrieren. Konkrete Ideen:

  • Deklarationsposition
  • Deklarieren Sie die Dienste, die das Projekt integrieren muss

Datei docker-compose.yml :

Version: '3.7'

# Dienste definieren:
 # Spring-Boot-Dienst-App-Server:
  bauen:
   Kontext: . #Konfigurieren Sie den Pfad zum Erstellen der Docker-Datei relativ zu docker-compose.yml
   Dockerdatei: Dockerdatei
  Häfen:
   - "8080:8080" # Ordnen Sie den lokalen Port 8080 dem Container-Port 8080 zu. Neustart: immer
  hängt ab von: 
   -db # Die abhängigen Dienste müssen zuerst erstellt werden - redis
  Umgebung: #Umgebungsvariablen festlegen SPRING_DATASOURCE_URL: jdbc:mysql://db:3306/airTicket?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false
   SPRING_DATASOURCE_USERNAME: root
   SPRING_DATASOURCE_PASSWORD: 123456
   SPRING_REDIS.HOST: redis
  Netzwerke: # Netzwerkverbindung MySQL und Redis
   - Backend
 db:
  Bild:mysql:5.6
  Häfen:
   - „3306:3306“
  Neustart: immer
  Umfeld:
   MYSQL_DATABASE: Flugticket
   MYSQL_USER: htx
   MYSQL_PASSWORD: 123456
   MYSQL_ROOT_PASSWORD: 123456
  Bände:
   -db-data:/var/lib/mysql
  Netzwerke:
   - Backend
 Redis:
  Bild: Redis
  Befehl: [ "Redis-Server", "--protected-mode", "no" ]
  Hostname:
   Redis
  Häfen:
   - „6379:6379“
  Netzwerke:
   - Backend   
Bände:
 DB-Daten:
Netzwerke:
 Backend:

Verwenden Sie docker-compose build um den Projektcontainer zu erstellen:


Starten Sie den Container mit docker-compose up :


Wenn Sie das Protokoll des erfolgreichen Spring-Boot-Starts sehen, war die Konfiguration erfolgreich.

Nachverfolgen

Dieses Mal habe ich nur das Backend erstellt. Ich hoffe, auch das Frontend angular、nginx erstellen zu können und zu versuchen, die Anwendung direkt mit einem docker -Befehl zu starten.

Referenzlink: Beispiel für die Docker-Zusammenstellung von Spring Boot, Mysql und React

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:
  • Beispiele für das Schreiben von Docker-Compose-Konfigurationsdateien und die Verwendung von Befehlen
  • Verwenden von Docker Compose zum Erstellen und Bereitstellen des ElasticSearch-Konfigurationsprozesses
  • Docker-Compose-Installationsmethode für die YML-Dateikonfiguration
  • Detaillierte Erläuterung des Prozesses zum Bereitstellen des verteilten Konfigurationscenters Apollo mit einem Klick mithilfe von Docker Compose
  • Detailliertes Tutorial zur Docker-Compose-Bereitstellung und Konfiguration von Jenkins
  • So installieren und konfigurieren Sie das Orchestrierungstool Docker Compose in Docker.v19
  • Detaillierte Erklärung der Softwarekonfiguration mit Docker-Compose unter Linux
  • Detaillierte Erklärung der Docker Compose-Konfigurationsdateiparameter

<<:  Vue verwendet drei Methoden zum Aktualisieren der Seite

>>:  Ursachen und Lösungen für Verzögerungen bei der MySQL-Master-Slave-Synchronisierung

Artikel empfehlen

So verwenden Sie Vue+ElementUI Tree

Die Verwendung von Vue + ElementUI Tree dient zu ...

Tutorial zur Installation von MySQL8 auf Centos7

Neue Funktionen in MySQL 8: Meine persönliche Mei...

HTML-Auswahloption So treffen Sie die Standardauswahl

Wenn Sie einer Option das Attribut selected = &quo...

Mehrere CSS3-Tag-Abkürzungen (empfohlen)

border-radius: CSS3 abgerundete Ecken Syntax: bor...

Detaillierte Erklärung des Explain-Typs in MySQL

Einführung: In vielen Fällen denken viele Leute, ...

Weitergabe von Techniken für Farbkontrast und -harmonie im Web

Farbkontrast und Harmonie Unter kontrastierenden ...

MySQL-Sortierung – Chinesische Details und Beispiele

Detaillierte Erklärung zur MySQL-Sortierung chine...

Tomcat8 verwendet Cronolog zum Aufteilen von Catalina.Out-Protokollen

Hintergrund Wenn die von Tomcat generierte catali...

js fügt dynamisch Beispielcode für eine Liste eingekreister Zahlen hinzu

1. Fügen Sie zuerst das ul-Tag im Textkörper hinz...

Änderung und Abfrage von Python MySQL-Datenbanktabellen

Python stellt eine Verbindung zu MySQL her, um Da...

JS realisiert einfachen Bildkarusselleffekt

In diesem Artikel wird der spezifische JS-Code zu...

Einführung in Keyword-Design-Methoden im Webdesign

Häufig ignorieren wir beim Erstellen der Homepage ...