|
|
|
<table>
|
|
|
|
<thead>
|
|
|
|
<tr>
|
|
|
|
<th width="200px"><h6>[:rewind: Exo Précédent](/Exo24-JSF/1%5D-Installation)</h6></th>
|
|
|
|
<th width="600px"><h1 align="center">27 - Spring Boot et Docker Compose</h1></th>
|
|
|
|
<th width="200px"><h6 align="right">[:house: Index](/)</h6></th>
|
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
|
|
|
|
<tbody>
|
|
|
|
<tr>
|
|
|
|
<td> </td>
|
|
|
|
<td align="center">:white_check_mark:<br/>Installation et ajustement</td>
|
|
|
|
<td> </td>
|
|
|
|
</tr>
|
|
|
|
</tbody>
|
|
|
|
|
|
|
|
<tfoot>
|
|
|
|
<tr align="right">
|
|
|
|
<td colspan="3">
|
|
|
|
<h6>:copyright: 2019 - <a href="mailto:admin@ferretrenaud.fr">FERRET Renaud</a></h6>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</tfoot>
|
|
|
|
</table>
|
|
|
|
|
|
|
|
***
|
|
|
|
|
|
|
|
# Importation du projet dans Eclipse
|
|
|
|
|
|
|
|
Nous allons reprendre un projet en Spring Boot + JPA + 3 profiles.
|
|
|
|
|
|
|
|
Dans le menu Eclipse, sélectionnez `File/Import` puis `Existing Maven Projects`
|
|
|
|
|
|
|
|
Pointez vers le dossier existant `formation.spring\exercices\enonces\Exo25-SBEtDocker`.
|
|
|
|
|
|
|
|
Le projet est en Maven et contient toutes les dépendances nécessaires au projet.
|
|
|
|
Attendez que toutes les dépendances soient téléchargées d'Internet avant de modifier le projet.
|
|
|
|
|
|
|
|
Vérifiez que tout fonctionne (pas de rouge sur le projet). **Le cas échéant**, vérifiez que vous avez un accès Internet puis faites un clic droit sur le projet puis `Maven - Update Project ...` et cochez `Force Update of Snapshots/Releases`.
|
|
|
|
|
|
|
|
|
|
|
|
# Rappel sur le projet :
|
|
|
|
|
|
|
|
C'est toujours notre projet banque qui fonctionne sur 3 profiles
|
|
|
|
* en base de données mémoire H2 (pour le test uniquement)
|
|
|
|
* en base de données MySQL
|
|
|
|
* en base de données PostgreSQL
|
|
|
|
|
|
|
|
Pour le moment
|
|
|
|
1. on lance, à la main, le docker-compose associé à la base de données,
|
|
|
|
2. on ajuste notre profile en fonction de la configuration du docker-compose (login/pwd/url/driver ...)
|
|
|
|
3. on lance notre projet Srping Boot
|
|
|
|
|
|
|
|
# Ce que l'on veut
|
|
|
|
|
|
|
|
En utilisant les dernière fonctionnalité de Spring Boot 3.1, on veut maintenant que le déroulé soit le suivant :
|
|
|
|
1. on ajuste notre profile de lancement en sélectionnant soit mysql, soit postgres
|
|
|
|
3. Spring Boot lance tout seul notre fichier docker-compose ET s'auto paramètre en fonction de ce dernier (login/pwd/url/driver ...)
|
|
|
|
|
|
|
|
# Dépendance
|
|
|
|
|
|
|
|
Ajoutez les dépendances nécessaires à Spring Boot :
|
|
|
|
|
|
|
|
```xml
|
|
|
|
...
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.springframework.boot</groupId>
|
|
|
|
<artifactId>spring-boot-docker-compose</artifactId>
|
|
|
|
<optional>true</optional>
|
|
|
|
</dependency>
|
|
|
|
...
|
|
|
|
```
|
|
|
|
|
|
|
|
Potentiellement, n'oubliez pas de compléter avec les exclusions liés à Log4J2.
|
|
|
|
|
|
|
|
Faites un clic droit sur le projet puis `Maven - Update Project ...`, vérifiez que tout compile correctement.
|
|
|
|
|
|
|
|
# Mise en place
|
|
|
|
|
|
|
|
Nous allons suivre la [documentation](https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.docker-compose) officiel associée à cette fonctionnalité de Spring Boot.
|
|
|
|
|
|
|
|
## Dans vos profiles
|
|
|
|
|
|
|
|
Retirez tous les éléments qui sont automatiquement gérés par Spring Boot docker compose.
|
|
|
|
|
|
|
|
Indiquer aussi via la clef `spring.docker.compose.file` le chemin vers le fichier docker-compose.yml associé au profile.
|
|
|
|
|
|
|
|
## Dans vos docker-compose
|
|
|
|
|
|
|
|
Renomez vos container si besoin pour Spring Boot ou faites usage de `labels`.
|
|
|
|
|
|
|
|
# Lancement
|
|
|
|
|
|
|
|
Arrêtez et Effacez de votre Docker tous les containers suceptibles de poser problèmes.
|
|
|
|
|
|
|
|
Indiquer comme profile par défaut `mysql` dans votre fichier `application.properties` et lancez votre projet Spring Boot.
|
|
|
|
|
|
|
|
Faites de même avec le profile `postgres`.
|
|
|
|
|
|
|
|
Regardez dans votre Docker Desktop ce qui se passe.
|
|
|
|
|
|
|
|
***
|
|
|
|
|
|
|
|
<table>
|
|
|
|
<thead>
|
|
|
|
<tr>
|
|
|
|
<th width="200px"><h6>[:rewind: Exo Précédent](/Exo24-JSF/1%5D-Installation)</h6></th>
|
|
|
|
<th width="600px"><h1 align="center">27 - Spring Boot et Docker Compose</h1></th>
|
|
|
|
<th width="200px"><h6 align="right">[:house: Index](/)</h6></th>
|
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
|
|
|
|
<tbody>
|
|
|
|
<tr>
|
|
|
|
<td> </td>
|
|
|
|
<td align="center">:white_check_mark:<br/>Installation et ajustement</td>
|
|
|
|
<td> </td>
|
|
|
|
</tr>
|
|
|
|
</tbody>
|
|
|
|
|
|
|
|
<tfoot>
|
|
|
|
<tr align="right">
|
|
|
|
<td colspan="3">
|
|
|
|
<h6>:copyright: 2019 - <a href="mailto:admin@ferretrenaud.fr">FERRET Renaud</a></h6>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</tfoot>
|
|
|
|
</table> |