-
Notifications
You must be signed in to change notification settings - Fork 22
Add a new microservice to shanoir ng
jcomedouteau edited this page Nov 5, 2019
·
1 revision
- Dupliquer le projet shanoir-ng-template et le renommer shanoir-ng-[name]
- Modifier le pom.xml pour changer le nom du projet maven et les dépendences associées. Il est possible qu’il manque ensuite des dépendances, elles sont à ajouter au fur et à mesure du developpement.
- Ajouter le nouveau projet dans le pom.xml de shanoir-ng/shanoir-ng-back
- Ajouter une ligne dans shanoir-ng/shanoir-ng-nginx/files/etc/nginx/nginx.conf:
location /shanoir-ng/eeg/ { proxy_pass http://shanoir-ng-[name]:9900/; }
- Ajouter une liogne dans shanoir-ng/docker-compose/nginx/nginx.conf:
location /shanoir-ng/ { proxy_pass http://[name]:[micro-service-port]/; }
Si on utilise la base de données, il faut créer un nouvel de BDD et ajouter un user.
- Modifier shanoir-ng/docker-compose/database/1_create_databases.sh pour créer une nouvelle base de données
- Modifier shanoir-ng/docker-compose/database/2_create_users.sql pour ajouter un utilisateur à la base de données
Changer les différents fichiers de configuration liés au template:
- DockerFile
- import.sql (si utilisation de la BDD)
- shanoirng_[template]_tables.sql (si utilisation de la BDD)
- shanoirng_[template].sql (si utilisation de la BDD)
- application.yml:
- Définir un nouveau port sur lequel tournera le microservice [micro-service-port]
- Définir l’utilisation ou non et la connexion à la BDD
- Définir les modules duquel est dépendant le micro-service
- Créer un nouveau dossier shanoir-ng/docker-compose/[name] avec un nouveau fichier DockerFile ici sera définit le port potentiel de debug)
- Modifier le fichier shanoir-ng/docker_compose.yml, ajouter un nouveau service [name] avec les nouveaux ports configurés
- Créer un fichier de description du microservice avec https://editor.swagger.io/ puis générer les fichiers (générés dans un zip)
- Dans les packages sources, remplacer le package template par un nouveau package [Name] avec l’API générée dans le “src/main/java/io/swagger/api/” et le “src/main/java/io/swagger/api/”.
- Ne copier que les classes spécifiques liées au fichier swagger définit (Les différents modèles et les API, APIController)
Vous pourrez alors organiser les packages pour avoir une hierarchie logique.
- Renommer la classe ShanoirTemplateApplication par Shanoir[Name]Application
A ce moment, il sera normalement possible de faire:
sudo mvn clean install
docker-compose build [name]
Et ensuite
docker-compose up –no-deps -d [name]
si shanoir-ng est déjà lancé
docker-compose up –build
si shanoir-ng n’est pas encore lancé
On peut trouver les logs du micro-servie comme définis dans le application.yml (généralement:)
sudo tail -100 /var/lib/docker/volumes/shanoir-ng_logs/_data/shanoir-ng-[name].log