Pages enfant
  • MDWP -8- Docker-compose


Il est possible d’exécuter facilement l'application en local grâce à Docker et aux fichiers Dockerfile et docker-compose.yml présents à la racine du projet sur Github.


Pré-requis

Pour cela il faut avoir Docker installé sur sa machine et avoir récupéré le projet :

git clone https://github.com/EsupPortail/esup-mdw-pegase.git

Créer l'image Docker

A la racine du projet, lancer la commande :

docker build -t esup-mdw-pegase:2.2.2 .

Attention : Remplacer 2.2.2 par le numéro de la version actuelle de mdw-pegase (cf revision dans le fichier pom.xml)

On vérifie que l'image est créée :

docker image ls

1726494849474-145.pngConfigurer les conteneurs

A la racine du projet, modifier le fichier docker-compose.yml pour y indiquer la bonne version de l'image de mdw-pegase à utiliser (celle créée ci-dessus).

Toujours à la racine du projet, créer un dossier ".docker".

Dans ce répertoire créer 2 dossiers :

  • esup-mdw-pegase
  • mariadb-data

Dans le répertoire "esup-mdw-pegase" créer un fichier "application.properties" basé sur src/main/resources/application-example.properties

Indiquer la configuration à utiliser dans ce fichier (cf Installation). Concernant la connexion à la bdd indiquer :

spring.datasource.url = jdbc:mysql://mariadb:3306/mdwpegase?serverTimezone=Europe/Paris
spring.datasource.username = root
spring.datasource.password = mypass

Démarrer les conteneurs

Lancer la commande :

docker-compose -f docker-compose.yml -p mdw-pegase up -d

Cela va démarrer les conteneurs mariadb (contenant la bdd), phpmyadmin (pour consulter la bdd facilement), et mdw-pegase.

1726494662468-750.pngOn accède à PhpMyAdmin via : http://localhost:8000/

On accède à MDW via : http://localhost:8080/

Si MDW ne démarre pas à cause d'une bdd non accessible :

com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
...
Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure
...
Caused by: java.net.ConnectException: Connection refused

C'est potentiellement dû au fait que la base n'a pas eu le temps de se créer avant que MDW ne se lance.

Il suffit donc de restart le conteneur de mdw-pegase

1726494639259-803.png

  • Aucune étiquette