Icone DugoutDugout est notre nouvel outil open source construit autour de Docker. Il automatise la mise en place des environnements de développement d’applications web basées sur des conteneurs au sein d’une équipe. Le déploiement de projets complexes sur l’ensemble des machines des développeurs se fait désormais en 1 clic !

L’INTERFACE DE DUGOUT

Dugout a initialement été développé pour les besoins internes de Mobapi par François, notre CTO, puis a récemment évolué vers un outil open source publié sur GitHub. L’objectif était de remplacer nos scripts de déploiement par un outil facile à utiliser par l’ensemble de l’équipe.

Autour d’une interface graphique compatible OSX et Linux (Windows arrive bientôt), Dugout permet d’installer et de démarrer simplement l’ensemble des conteneurs d’une application web.

Ecran d'accueil de Dugout

Ecran d’accueil de Dugout

Après avoir configuré globalement l’application, puis paramétré chaque projet, la gestion des conteneurs Docker se fait à partir de la fenêtre principale de l’outil. L’utilisateur peut lancer ou arrêter les conteneurs séparément, mettre à jour les images et accéder au détail des logs. Toutes les informations sur les images et les conteneurs sont centralisées au sein de l’application.

Pour faciliter le lancement des applications multi-tiers, un bouton permet de démarrer tous les conteneurs en même temps !

Accès aux logs d'un conteneur Docker

Accès aux logs d’un conteneur Docker

A la différence de Kitematic, Dugout permet de gérer un fichier de configuration externe global pour toute une équipe, et facilite donc le déploiement d’environnements pré-paramétrés. Dugout est peut être moins joli que Kitematic, mais plus efficace ;)

POUR DEMARRER AVEC DUGOUT

Prérequis

  • Linux : Il faut que Docker soit installé sur la machine
  • OSX (et bientôt Windows) : Installer Docker ToolBox

Utiliser Dugout

Pour démarrer Dugout, c’est simple : il suffit d’exécuter le binaire disponible sur GitHub.
Dans la fenêtre principale de l’application, commencez par chargez un fichier de paramétrage au format JSON tel que défini dans l’exemple.

Pour rentrer dans les détails, chaque conteneur est un élément du tableau JSON de paramètre. Par exemple avec :

[pastacode lang=”javascript” message=”Exemple de fichier de configuration Dugout” highlight=”” provider=”manual” manual=”%7B%20%20%0A%20%20%20%22frontend%22%3A%7B%20%20%0A%20%20%20%20%20%20%22title%22%3A%22Frontend%22%2C%0A%20%20%20%20%20%20%22image%22%3A%22nginx%22%2C%0A%20%20%20%20%20%20%22ports%22%3A%7B%20%20%0A%20%20%20%20%20%20%20%20%20%2280%2Ftcp%22%3A%228080%22%0A%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%22volumes%22%3A%7B%20%20%0A%20%20%20%20%20%20%20%20%20%22%2Fusr%2Fshare%2Fnginx%2Fhtml%2Fwebsite1%3A%20ro%22%3A%22%24%7B%20frontendLocalRepository%20%7D%2Fwww%22%0A%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%22variables%22%3A%7B%20%20%0A%20%20%20%20%20%20%20%20%20%22frontendLocalRepository%22%3A%7B%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%22label%22%3A%22R%C3%A9pertoire%20du%20projet%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22type%22%3A%22directory%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22mandatory%22%3Atrue%0A%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%7D%2C%0A%20%20%20%22backend%22%3A%7B%20%20%0A%20%20%20%20%20%20%22title%22%3A%22Backend%20%22%2C%0A%20%20%20%20%20%20%22image%22%3A%22iain%2Fnodemon%22%2C%0A%20%20%20%20%20%20%22ports%22%3A%7B%20%20%0A%20%20%20%20%20%20%20%20%20%2280%2Ftcp%22%3A%228081%22%0A%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%22volumes%22%3A%7B%20%20%0A%20%20%20%20%20%20%20%20%20%22%2Fusr%2Fshare%2Fnode%2Fbackend%3A%20ro%22%3A%22%24%7BbackendLocalRepository%7D%20%22%0A%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%22cmd%22%3A%22cd%20%2Fusr%2Fshare%2Fnode%2Fbackend%20%26%26%20nodemon%20dist%22%2C%0A%20%20%20%20%20%20%22variables%22%3A%7B%20%20%0A%20%20%20%20%20%20%20%20%20%22backendLocalRepository%22%3A%7B%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%22label%22%3A%22R%C3%A9pertoire%20du%20projet%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22type%22%3A%22directory%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22mandatory%22%3Atrue%0A%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%7D%0A%7D”/]

Il suffit de reproduire ce bloc de paramétrage pour chaque conteneur de l’application web sous Docker, et de le partager entre les développeurs.
Une fois le fichier chargé dans Dugout, les conteneurs apparaissent dans la barre latérale de gauche de l’outil et peuvent être démarrés individuellement ou tous ensemble.

Pour toute demande d’info sur Dugout, vous pouvez nous écrire sur dugout@mobapi.com.

CHEZ MOBAPI, ON UTILISE DOCKER !

Docker est un logiciel open source qui simplifie le déploiement de conteneurs applicatifs et nous l’utilisons pour plusieurs raisons sur le projet Mobapi :

  • Homogénéisation des environnements de développement et de production,
  • Découpage de Mobapi en micro-services afin de faciliter la montée en charge, le déploiement et la maintenance,
  • Et tout simplement parce que Docker, on aime !

L’infrastructure Docker est puissante, mais l’initialisation d’un environnement de développement avec plusieurs conteneurs est complexe et prend du temps. Surtout quand on doit dupliquer cet environnement sur plusieurs machines. C’est cette complexité qui a motivé la création de Dugout.

Dugout colle parfaitement à l’esprit de Mobapi : proposer un outil simple et puissant qui facilite la gestion de tâches complexes sans avoir à coder.

POUR FINIR

Au fait, le nom « Dugout » est inspiré d’un moyen de transport très utilisé ici en Guyane : la pirogue. Agile sur les fleuves d’Amazonie, et capable de charger plein de conteneurs pour nos séances de team building en forêt !