Premier article. Veuillez en souligner beaucoup.
Quand j'ai pensé à créer un portfolio avec Spring Boot, j'ai pris beaucoup de temps pour créer une base de données avec docker, j'ai donc pris une note.
Affiche la valeur de la base de données (Mysql) construite à l'aide de docker dans l'exemple de projet à l'écran
docker débutant or Ingénieur avec peu d'expérience en développement (1 ou 2 ans)
・ Comment créer un fichier docker -Lien entre l'environnement MySQL créé sur docker et le projet Spring Boot
Je publierai un article de @ kotaro-dr. [Illustration] Comprendre toute l'image de Docker -Partie 1- ┗ Le document est propre et facile à comprendre même pour les débutants [Illustration] Comprendre toute l'image de Docker - Partie 2 ┗ Au début de la deuxième partie, il y aura une histoire sur la gestion des données liées à la persistance de la base de données, donc cette fois, c'est OK si vous regardez au moins autant. Je publierai également la deuxième partie. [Illustration] Comprendre toute l'image de Docker -Partie 2-
・ Plus clair que la boîte Vurtual ← Les détails sont omis car le thème et la mise au point sont flous. ・ L'environnement de développement peut être préparé immédiatement ┗ "Cela fonctionne sur ce terminal, mais cela ne fonctionne pas sur mon terminal." ┗ Lorsque vous demandez à une connaissance ou que vous utilisez un service d'assurance qualité tel que teratail, vous pouvez transmettre votre environnement actuel à l'autre partie tel quel, et il vous sera plus facile d'obtenir une réponse.
■ Informations environnementales Langue: Java (jdk11) FW:Spring boot IDE:IntelliJ
C'est l'arborescence du projet à créer cette fois. (Désolé pour l'image)
Jusqu'à présent, ce n'était que des liens, mais j'aimerais bientôt publier mes propres mots.
Cette fois, je vais faire une chose simple qui affiche toutes les valeurs de la base de données. C'est un niveau que vous pouvez voir en le regardant, donc avec un schéma de cuisson de 3 minutes, le résultat est le suivant. spring-boot-docker(github)
spring.datasource.url=jdbc:mysql://localhost:3306/demo?characterEncoding=UTF-8&serverTimezone=JST
#//demo est le nom de cette base de données
spring.datasource.username=root //Nom d'utilisateur
spring.datasource.password=p@ssw0rd //mot de passe
spring.jpa.hibernate.ddl-auto=update //Créer s'il n'y a pas de table correspondant à Entité au démarrage de l'application
Il s'agit du paramètre minimum requis pour la liaison de base de données. Veuillez noter qu'il est nécessaire de faire correspondre le contenu de docker-compose.yml qui sera créé ultérieurement.
Cette fois, je vais créer un dossier appelé docker dans la même hiérarchie que src et y créer des fichiers associés. Je suis conscient qu'il n'y a pas de spécification spécifique car je n'ai pas trouvé de description de l'emplacement.
fockerfile
FROM mysql:8.0 #Spécifiez l'image à acquérir depuis Docker Hub
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
COPY: le côté gauche de la commande est le côté local et le côté droit est le côté image du docker. RUN: peut exécuter des commandes installées sur l'image cible
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"
Cliquez avec le bouton droit sur docker-compose.yml sur le projet et sélectionnez "Play".
Ensuite, la construction de l'environnement commencera par interpréter le dockerfile
et docker-compose.yml
que j'ai écrit plus tôt.
Lorsque vous voyez que «Compose: docker» a été déployé avec succès. »Comme indiqué ci-dessous, vous avez terminé.
Maintenant, allons dans le conteneur et vérifions si la base de données est complète.
Dans le terminal (invite de commande pour Windows), accédez au répertoire du projet.
à l'intérieur de ça
Vérifiez l'état de fonctionnement actuel du conteneur avec la commande docker ps
.
La figure ci-dessous est après l'exécution
Vous pouvez voir que l'image de mysql est créée. Utilisez cet ID ou NOMS DE CONTENEUR pour commencer. Cette fois, je vais le démarrer en utilisant le CONTAINER ID.
Entrez dans le conteneur avec docker exec -it [CONTAINER ID] bash
.
root @ 37c06170b19b: / #
Si le terminal (invite de commande) ressemble à ceci, il est inclus.
Depuis cet écran, connectez-vous à Mysql en tant qu'utilisateur root.
mysql -u root
Cette fois, le mot de passe est p @ ssw0rd
.
Connectez-vous à mysql comme ci-dessous
Spécifiez cet exemple de base de données avec ʻuse demo. Après cela, vérifiez correctement sql. Puisque la table ʻuser
est incluse comme données initiales.
select * from user;
J'ai pu vérifier le contenu du tableau.
Après cela, si vous exécutez votre propre exemple de projet minable depuis Docker Application
...
Nous avons réussi à établir un lien avec la base de données comme indiqué ci-dessous.
En utilisant le menu fixe de cette manière, vous pouvez transmettre l'intégralité de l'environnement à l'autre partie, vous n'avez donc pas à vous soucier de configurer la base de données ou de saisir des données à l'autre partie. La connaissance de docker est encore superficielle, mais je pense qu'il sera de plus en plus utilisé à l'avenir, donc je voudrais l'utiliser activement.
La prochaine fois, j'aimerais essayer l'écran d'authentification avec Spring Boot.
Recommended Posts