Créer votre BDD postgre
On prend simplement notre fichier docker-compose.yml et on ajoute les lignes suivantes :
postgres:
image: postgres:17-alpine
ports:
- 127.0.0.1:5432:5432
container_name: truck_bdd
environment:
- POSTGRES_USER=truck
- POSTGRES_PASSWORD=123456
- POSTGRES_DB=truck
On décortique :
postgres:
Le nom utilisé dans docker compose pour vous aider à identifier la machine dans le fichier.
image: postgres:17-alpine
L’image utilisĂ©e, donc une distribution alpine avec un postgres configurĂ©.
ports:
- 127.0.0.1:5432:5432
Ceci n’est pas nĂ©cessaire, mais va vous permettre de vous connecter Ă postgre Ă partir de votre pc. Ă utiliser avec prĂ©caution en prod, bien vĂ©rifier que le port n’est pas accessible Ă n’importe qui. Donc le port 5432 est le port par dĂ©faut de postgre, vous pouvez utiliser un autre port Ă gauche s’il est dĂ©jĂ utilisĂ© par un autre programme (par exemple si vous avez plusieurs BDD).
container_name: truck_bdd
Le nom de votre container pour docker, afin de redĂ©marrer, avoir les logs…
environment:
- POSTGRES_USER=truck
- POSTGRES_PASSWORD=123456
- POSTGRES_DB=truck
Des variables d’environnements qui vont permettre de configurer un utilisateur, un mot de passe ainsi que le nom de la base de donnĂ©es.
– POSTGRES_USER => nom d’utilisateur
– POSTGRES_PASSWORD => mot de passe de l’utilisateur
– POSTGRES_DB => Le nom de la BDD
Changer la configuration dans springboot
build.gradle
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-security'
runtimeOnly 'org.postgresql:postgresql'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}
On remplace juste la ligne
runtimeOnly 'com.h2database:h2'
par :
runtimeOnly 'org.postgresql:postgresql'
On demande Ă Springboot d’importer le connecteur postgre plutĂŽt que celui de h2.
application.properties
spring.datasource.url=jdbc:postgresql://truck_bdd:5432/truck
spring.datasource.driverClassName=org.postgresql.Driver
spring.datasource.username=truck
spring.datasource.password=123456
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto=create-drop
En détail :
spring.datasource.url=jdbc:postgresql://truck_bdd:5432/truck
L’url de votre connexion Ă la BDD avec
- jdbc => le protocole de connexion standard de java
- postgresql => le type de bdd
- truck_bdd => le nom de la machine dans votre docker compose
- 5432 => le port postgre
- truck => le nom de la BDD qui doit ĂȘtre le mĂȘme que dans le docker-compose.yml (POSTGRES_DB)
spring.datasource.driverClassName=org.postgresql.Driver
La classe Ă utiliser pour la connexion, chaque type de BDD Ă sa propre classe.
spring.datasource.username=truck
Le nom d’utilisateur qui doit ĂȘtre le mĂȘme que dans le docker-compose.yml (POSTGRES_USER)
spring.datasource.password=123456
Le mot de passe qui doit ĂȘtre le mĂȘme que dans le docker-compose.yml (POSTGRES_PASSWORD)
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
Le dialect que doit utiliser Springboot afin de discuter avec la BDD, chaque type de BDD Ă son propre dialect.
spring.jpa.hibernate.ddl-auto=create-drop
Indique que Springboot va crĂ©er le schema de la BDD au dĂ©but de la session et le supprimer Ă la fin. Vous avez d’autres possibilitĂ©s comme create
qui va le créer, mais pas le supprimer ou update
… Chaque besoin Ă sa solution.
Comment lancer tout ça?
Ouvrir votre terminal préféré, faites un cd
vers le projet Springboot. Et lancez :
./gradlew build -x test
Ensuite faites un cd
vers le dossier contenant votre docker-compose.yml. Et lancez la commande :
docker compose up -d
VoilĂ tout est prĂȘt. Ăa n’Ă©tait pas si compliquĂ©. Avez-vous des questions des commentaires? Bien entendu on peut paramĂ©trer plus de choses, mais lĂ avec un minimum de code, on a quelque chose qui fonctionne et mĂȘme plutĂŽt bien ?
Laisser un commentaire