Déployer un environnement avec Docker-compose

Afin de démarrer un environnement de développement vous devez commencer par cloner le dépôt de code application :

~/src/zephir$ git clone https://gitlab.mim.ovh/EOLE/Zephir/application.git
~/src/zephir$ cd application/

Ce dépôt contient la configuration pour les différents orchestrateurs supportés :

Faciliter l’utilisation de docker-compose

Dans ce dépôt application, nous fournissons l’utilitaire zephir-compose enrobant la commande docker-compose afin d’en faciliter l’utilisation.

Il y a généralement 4 étapes pour mettre en œuvre un environnement, modifier le code source d’un microservice et tester vos modifications dans l’infrastructure :

  1. Démarrer l’infrastructure de développement en arrière plan -d:
~/src/zephir/application$ ./compose/zephir-compose --base dev -- up -d
  1. Cloner le dépôt Git du microservice à modifier et des bibliothèques nécessaires :
~/src/zephir/application$ git clone https://gitlab.mim.ovh/EOLE/Zephir/server-manager.git ../server-manager/
~/src/zephir/application$ git clone https://gitlab.mim.ovh/EOLE/Zephir/python-zephir.git ../python-zephir/
~/src/zephir/application$ git clone https://gitlab.mim.ovh/EOLE/Zephir/messages-api.git ../messages-api/
  1. Modifier le code source du microservice souhaité

  2. Redémarrer le microservice en utilisant le code source modifié

    ~/src/zephir/application$ ./compose/zephir-compose --base dev -- stop server-manager
    ~/src/zephir/application$ ./compose/zephir-compose --base -- rm -f server-manager
    ~/src/zephir/application$ ./compose/zephir-compose --base dev --src ../server-manager/ --src ../python-zephir --src ../messages-api -- up --build server-manager
    

Les 4 environnements de l’application Zéphir

La commande zephir-compose permet de contrôler 4 environnements de l’application Zéphir :

  • source : src
  • développement : dev
  • démonstration : staging
  • stable : stable

Chacun des environnements peut être utilisé :

  • soit comme environnement de base pour tous les conteneurs en utilisant l’option --base <environnement>
  • soit pour quelques conteneurs en complément de l’environnement de base avec des options spécifiques --<environnement>.

L’environnement source

Cet environnement utilise les dépôts Git des sources du projet qui doivent être clonés par le développeur.

Il est possible de le définir comme environnement de base afin de construire tous les conteneurs depuis leur dépôt sources avec l’option --base src :

~/src/zephir/application$ ./compose/zephir-compose --base src -- --up -d

Cette option requiert la présence des dépôts Git des sources de tous les conteneurs et bibliothèques dans le répertoire parent au dépôt application

Il est possible de ne construire qu’un ou plusieurs conteneurs depuis les sources avec l’option --src <microservice> en complément de l’utilisation d’un autre environnement de base :

~/src/zephir/application$ ./compose/zephir-compose --base dev --src config-manager -- --up -d

L’environnement de développement

Cet environnement utilise les dernières images docker de développement publiées.

Il est possible de le définir comme environnement de base afin de télécharger tous les conteneurs dans leur dernière version de développement :

~/src/zephir/application$ ./compose/zephir-compose --base dev -- --up -d

Il est possible de ne construire qu’un ou plusieurs conteneurs depuis les sources avec l’option --dev <microservice> en complément de l’utilisation d’un autre environnement de base :

~/src/zephir/application$ ./compose/zephir-compose --base stable --dev config-manager -- --up -d

L’environnement de démonstration

Cet environnement utilise les images docker de développement validées pour l’environnement de démonstration https://lab14-eole.ac-dijon.fr

Il est possible de le définir comme environnement de base afin de télécharger tous les conteneurs dans leur dernière version de démonstration :

~/src/zephir/application$ ./compose/zephir-compose --base staging -- --up -d

Il est possible de ne construire qu’un ou plusieurs conteneurs depuis les sources avec l’option --staging <microservice> en complément de l’utilisation d’un autre environnement de base :

~/src/zephir/application$ ./compose/zephir-compose --base stable --staging config-manager -- --up -d

L’environnement stable de production

Cet environnement utilise les images docker stables validées pour un environnement de production.

Il est possible de le définir comme environnement de base afin de télécharger tous les conteneurs dans leur dernière version stable :

~/src/zephir/application$ ./compose/zephir-compose --base stable -- --up -d

Il est possible de ne construire qu’un ou plusieurs conteneurs depuis les sources avec l’option --stable <microservice> en complément de l’utilisation d’un autre environnement de base :

~/src/zephir/application$ ./compose/zephir-compose --base staging --stable config-manager -- --up -d