[JAVA] Erstellen einer Datenbankumgebung mit Docker in Spring Boot (IntellJ)

Die Datenbank wird mit Spring boot + docker verknüpft!

Erster Artikel. Bitte weisen Sie viel darauf hin.

Als ich darüber nachdachte, ein Portfolio mit Spring Boot zu erstellen, nahm ich mir viel Zeit, um eine DB mit Docker zu erstellen, und machte mir eine Notiz.

Dieses Ziel

Geben Sie den Wert der Datenbank (MySQL), die mit Docker im Beispielprojekt erstellt wurde, auf dem Bildschirm aus

・ Zielgruppe Leser ...

Docker Anfänger or Ingenieur mit wenig Entwicklungserfahrung (1 oder 2 Jahre)

Perspektive, sich auf diese Zeit zu konzentrieren

・ So erstellen Sie eine Docker-Datei -Verbindung zwischen der auf Docker erstellten MySQL-Umgebung und dem Spring-Boot-Projekt

Was ist Docker?

Ich werde einen Artikel von @ kotaro-dr veröffentlichen. [Abbildung] Das gesamte Bild von Docker verstehen - Teil 1- ┗ Das Dokument ist sauber und auch für Anfänger leicht verständlich [Abbildung] Das ganze Bild von Docker verstehen - Teil 2- ┗ Zu Beginn des zweiten Teils wird es eine Geschichte über die Datenverwaltung im Zusammenhang mit der Datenbankpersistenz geben. Diesmal ist es also in Ordnung, wenn Sie mindestens so viel betrachten. Ich werde auch den zweiten Teil posten. [Abbildung] Das gesamte Bild von Docker verstehen - Teil 2-

Warum Docker?

・ Leichter als Vurtual Box ← Details werden weggelassen, da das Thema und der Fokus unscharf sind. ・ Entwicklungsumgebung kann sofort vorbereitet werden ┗ "Es funktioniert auf diesem Terminal, aber auf meinem Terminal nicht." ┗ Wenn Sie einem Bekannten eine Frage stellen oder einen QS-Dienst wie Teratail verwenden, können Sie Ihre aktuelle Umgebung so wie sie ist an die andere Partei weitergeben, und es wird für Sie einfacher, eine Antwort zu erhalten.

Lass es uns sofort versuchen

■ Umweltinformationen Sprache: Java (jdk11) FW:Spring boot IDE:IntelliJ

Dies ist der Baum des Projekts, das dieses Mal erstellt werden soll. (Entschuldigung für das Bild)

スクリーンショット 2019-02-24 15.49.49.jpg

Bisher waren es nur Links, aber ich möchte bald meine eigenen Worte herausbringen.

Ein Projekt erstellen

Dieses Mal werde ich eine einfache Sache machen, die alle Werte in der Datenbank ausgibt. Es ist eine Stufe, die Sie verstehen können, wenn Sie sie betrachten. Das Folgende ist das Ergebnis des 3-minütigen Kochmusters. spring-boot-docker(github)

Über application.properties

spring.datasource.url=jdbc:mysql://localhost:3306/demo?characterEncoding=UTF-8&serverTimezone=JST 
#//Demo ist der Name dieser Datenbank
spring.datasource.username=root //Nutzername
spring.datasource.password=p@ssw0rd  //Passwort
spring.jpa.hibernate.ddl-auto=update  //Erstellen Sie, wenn beim Starten der Anwendung keine Tabelle vorhanden ist, die der Entität entspricht

Dies ist die Mindesteinstellung, die für die Datenbankverknüpfung erforderlich ist. Bitte beachten Sie, dass es notwendig ist, den Inhalt von docker-compose.yml abzugleichen, der später erstellt wird.

Erstellen einer Docker-Datei

Dieses Mal werde ich einen Ordner namens Docker in derselben Hierarchie wie src erstellen und verwandte Dateien darin erstellen. Mir ist bekannt, dass es keine spezifische Spezifikation gibt, da ich keine Beschreibung des Standorts finden konnte.

fockerfile



FROM mysql:8.0  #Geben Sie das Image an, das vom Docker-Hub erfasst werden soll

RUN /bin/cp -f /etc/localtime /etc/localtime.org
RUN /bin/cp -f /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

COPY ./my.cnf /etc/mysql/conf.d/

RUN mkdir -p /var/log/mysql
RUN chown mysql.mysql /var/log/mysql

KOPIEREN: Die linke Seite des Befehls ist die lokale Seite und die rechte Seite ist die Docker-Bildseite. RUN: Kann Befehle ausführen, die auf dem Ziel-Image installiert sind

docker-compose.yml


version: '3'
services:
    mysql:
        build: ./mysql
        environment:
            - MYSQL_DATABASE=demo
            - MYSQL_ROOT_USER=root
            - MYSQL_ROOT_PASSWORD=p@ssw0rd
            - TZ=Japan
        volumes:
            - ./initdb.d:/docker-entrypoint-initdb.d
            - ./dbdata:/var/lib/mysql
        ports:
            - "3306:3306"

↑ Wenn durch einen Doppelpunkt getrennt (:)

-Die linke Seite zeigt den Pfad auf der Host-Seite und die rechte Seite zeigt den Pfad auf der Containerseite.
-Initial Data Input-> Legen Sie die zu lesende SQL-Datei zuerst im Verzeichnis initdb.d ab
Persistenz → Mit jeder Verarbeitung von Datenbankdaten kommen immer mehr Dateien ein, die Daten entsprechen

Beginnen wir mit dem Docker-Compose

Klicken Sie im Projekt mit der rechten Maustaste auf docker-compose.yml und wählen Sie "Play". スクリーンショット 2019-03-01 22.49.47.jpg Dann beginnt die Umgebungskonstruktion mit der Interpretation der Docker-Datei und der Docker-Compose.yml, die ich zuvor geschrieben habe. Wenn Sie sehen, dass "Compose: Docker" erfolgreich bereitgestellt wurde, wie unten gezeigt, sind Sie fertig. スクリーンショット 2019-03-01 22.53.15.jpg

Lassen Sie uns nun in den Container gehen und prüfen, ob die Datenbank vollständig ist. Wechseln Sie im Terminal (Eingabeaufforderung für Windows) in das Projektverzeichnis. darin Überprüfen Sie den aktuellen Betriebsstatus des Containers mit dem Befehl docker ps. Die folgende Abbildung ist nach der Ausführung スクリーンショット 2019-03-02 0.18.36.jpg

Sie können sehen, dass das Bild von MySQL erstellt wird. Verwenden Sie zum Starten diese CONTAINER-ID oder NAMEN. Dieses Mal starte ich es mit der CONTAINER ID.

Geben Sie den Container mit "docker exec -it [CONTAINER ID] bash" ein. root @ 37c06170b19b: / # Wenn das Terminal (Eingabeaufforderung) so aussieht, ist es enthalten. Stellen Sie in diesem Bildschirm eine Verbindung zu MySQL als Root her. mysql -u root Dieses Mal lautet das Passwort "p @ ssw0rd". Stellen Sie wie unten beschrieben eine Verbindung zu MySQL her スクリーンショット 2019-03-02 0.40.51.jpg

Geben Sie diese Beispieldatenbank mit use demo an. Überprüfen Sie danach SQL entsprechend. Da die "Benutzer" -Tabelle als Anfangsdaten enthalten ist. select * from user; スクリーンショット 2019-03-02 0.46.40.jpg Ich konnte den Inhalt der Tabelle überprüfen.

Wenn Sie danach Ihr eigenes schäbiges Beispielprojekt über "Docker Application" ausführen ... Es ist uns gelungen, die unten gezeigte Datenbank zu verknüpfen. スクリーンショット 2019-03-02 0.52.29(2).jpg

Wenn Sie Docker auf diese Weise verwenden, können Sie die gesamte Umgebung an die andere Partei übergeben, sodass Sie sich nicht die Mühe machen müssen, die Datenbank einzurichten oder Daten an die andere Partei einzugeben. Das Wissen über Docker ist noch gering, aber ich denke, dass es in Zukunft immer mehr verwendet wird, deshalb würde ich es gerne aktiv nutzen.

Das nächste Mal möchte ich den Authentifizierungsbildschirm mit Spring Boot ausprobieren.

Recommended Posts

Erstellen einer Datenbankumgebung mit Docker in Spring Boot (IntellJ)
Erstellen Sie mit Docker eine Spring Boot-Entwicklungsumgebung
[Spring Boot] Umgebungskonstruktion (macOS)
[Docker] Rails 5.2-Umgebungskonstruktion mit Docker
Erstellen Sie die Node.js-Umgebung mit Docker Compose
◆ Konstruktionsnotiz für Spring Boot + Gradle-Umgebung
Umgebungsbau mit Docker für Anfänger
Datenbankverknüpfung mit doma2 (Spring Boot)
[Umgebungskonstruktion mit Docker] Rails 6 & MySQL 8
Aufbau einer GPU-Umgebung mit Docker [Version Oktober 2020]
Schienenumgebungskonstruktion mit Docker (persönliche Apokalypse)
Spring Boot Umgebungskonstruktionsnotiz auf Mac
Aufbau einer Laravel-Entwicklungsumgebung mit Docker (Mac)
Bearbeiten Sie MySQL mit Befehlen in der Docker-Umgebung
Erstellen Sie mit Docker eine Spring Boot-gradle-mysql-Entwicklungsumgebung
Erstellen einer Umgebung für Laravel + MySQL + phpMyadmin mit Docker
Versuchen Sie Spring Boot 1 (Umgebungskonstruktion ~ Tomcat-Start)
[Frühling] Umweltbau
Testen Sie den Controller mit Mock MVC im Spring Boot
Asynchrone Verarbeitung mit regelmäßiger Ausführung in Spring Boot
Erstellen Sie mit Gradle Spring Boot-Projekte nach Umgebung
DB-Umgebungskonstruktion mit DBFlute Intro + H2-Datenbank
Erstellen Sie eine Spring Boot-Umgebung mit Windows + VS-Code
Konstruktions- und Entwicklungsverfahren für lokale WordPress-Umgebungen mit Docker
Koexistenz von Flyway in der eingebetteten Datenbank (h2) der Entwicklungsumgebung und der Release-Datenbank (SQL Server) mit Spring Boot
Aufbau der Rails Docker-Umgebung
Spring Boot Entwicklung-Entwicklungsumgebung-
Mit Spring Boot herunterladen
Nehmen Sie das externe Glas mit Spring boot2 + Maven3 in das Paket auf
Wechseln Sie die Umgebung mit Spring Boot application.properties und @ Profile-Annotation
[Hinweis] Erstellen Sie eine Python3-Umgebung mit Docker in EC2
Bis Sie mit der Entwicklung mit Spring Boot in Eclipse 1 beginnen
Booten nach Umgebung mit Spring Boot of Maven
Bis Sie mit der Entwicklung mit Spring Boot in Eclipse 2 beginnen
Erstellen Sie eine Java + Spring-Entwicklungsumgebung mit VirtualBox + Ubuntu (Xfce4).
Generieren Sie mit Spring Boot einen Barcode
Hallo Welt mit Spring Boot
Implementieren Sie GraphQL mit Spring Boot
Beginnen Sie mit Spring Boot
Konstruktionsnotiz für die MySQL 5.7 (Docker) -Umgebung
Spring Boot 2 Multiprojekt mit Gradle
Führen Sie LIFF mit Spring Boot aus
SNS-Login mit Spring Boot
Datei-Upload mit Spring Boot
Spring Boot beginnt mit dem Kopieren
JavaFX-Umgebungskonstruktion in Java 13
Redmine (Docker) Umgebungskonstruktionsnotiz
Fehler in der Spring-Datenbankverbindung
Hallo Welt mit Spring Boot
Wichtige Änderungen in Spring Boot 1.5
Erste Schritte mit Spring Boot