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.
Geben Sie den Wert der Datenbank (MySQL), die mit Docker im Beispielprojekt erstellt wurde, auf dem Bildschirm aus
Docker Anfänger or Ingenieur mit wenig Entwicklungserfahrung (1 oder 2 Jahre)
・ So erstellen Sie eine Docker-Datei -Verbindung zwischen der auf Docker erstellten MySQL-Umgebung und dem Spring-Boot-Projekt
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-
・ 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.
■ 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)
Bisher waren es nur Links, aber ich möchte bald meine eigenen Worte herausbringen.
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)
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.
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"
Klicken Sie im Projekt mit der rechten Maustaste auf docker-compose.yml und wählen Sie "Play". 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.
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
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
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;
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.
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