Build (wrapper Maven) :
./mvnw -P prod packageRésultat :
target/<artifactId>-<version>.jar— JAR principaltarget/libs/— tous les JAR runtime nécessaires
Exécution locale (sans Docker - nécessite une base de données accessible) :
java -jar target/<artifactId>-<version>.jar
# ou explicitement
java -cp "target/libs/*:target/<artifactId>-<version>.jar" fr.univtln.bruno.demos.docker.Main- L'image Docker est construite depuis le
Dockerfilequi copie le JAR et le dossierlibs. - Le
Dockerfileutilise la route/restjpa/healthcomme check de santé du conteneur.
# construire l'image
docker build -t restjpa:latest .
# ou via docker-compose
docker compose up --buildImportant runtime / env vars
DB_URL— JDBC URL (used bypersistence.xmlif provided)DB_USER— database userDB_PASSWORD— database passwordDB_NAME— used by compose example for the Postgres containerDB_SCHEMA_ACTION— controls Hibernate DDL mode (defaults tocreateinpersistence.xml); you can set tocreate/noneas needed
- Le fichier
docker-compose.ymldéfinit deux services :db(PostgreSQL) etapp(notre application Java). - Les variables d'environnement pour la connexion à la base de données sont configurées dans le service
app..envfichier utilisé pour définir les valeurs par défaut des variables d'environnement.
- Le service
appdépend du servicedb, assurant que la base de données est prête avant le démarrage de l'application. - Le port
8088du serviceappest mappé au port8088de l'hôte.
Pour démarrer les services :
docker compose up --buildPour tester l'application une fois démarrée :
curl http://localhost:8088/restjpa/health
curl http://localhost:8088/restjpa/persons
curl -X POST http://localhost:8088/restjpa/persons -H "Content-Type: application/json" -d '{"name":"John Doe","age":30}'