Utiliser MongoDB à partir d’une image docker

MongoDB est une des bases de données NoSQL orientée Document les plus populaires. Pour l’utilisez sur des environnement de développement il est souvent plus simple d’utiliser une image docker plutôt que d’installer le moteur sur chaque poste de développement. Voici les quelques étapes à suivre pour utiliser MongoDB dans un conteneur docker.

Récupération de l’image

Le prérequis est que docker est installé et configuré sur le poste de travail. Le plus simple est d’utiliser la dernière version :

Il est possible de choisir une version spécifique en ajoutant un tag :

La liste des tags (versions + systèmes disponibles) est accessible ici.

Déploiement de l’image comme container

L’image téléchargée doit être déployée sous forme de container, il faut durant cette opération préciser les paramètres d’accès au container (port, host) et le nom du container afin de pouvoir le gérer par la suite dans docker.

La commande précédente va démarrer le container en mode daemon, il fonctionnera de cette manière en tâche de fond une fois démarré.

Se connecter à MongoDB

Le container docker peut être démarré et arrêté avec les commandes suivantes :

Une fois démarré le container permet de se connecter à mongodb comme si il fonctionnait directement sur votre poste de travail. Avec votre outil préféré ou un langage de programmation, vous aller pouvoir vous connecter sur le host localhost. Pour interagir avec le shell mongo directement il faut se connecter au bash du container et lancer le shell mongo :

Vous pourrez ensuite accéder à toutes les commandes de gestion à partir du shell, liste des dbs, liste des collections …

Créer un endpoint avec Java/Spring pour Webhooks Shopify

Les Webhooks Shopify sont disponibles afin de notifier une application extérieure sur des évènements de la boutique. Les évènements touchent toutes les entités de la boutique (commande, client, panier, produit ….). Malheureusement Shopify ne fournit pas d’exemple en Java pour le squelette du Endpoint. Notamment il n’est pas évident de reproduire en Java la vérification du Digest permettant de vérifier que la requête est bien issue de Shopify.

Voici l’exemple en Java :

Dans l’exemple il faut remplacer la constante SHOPIFY_APP_SECRET par le code de vérification fourni dans la section Webhooks de votre boutique shopify. Le lien vers la doc shopify pour utiliser les webhooks et les exemples de codes en php/python/ruby sur la vérification de l’appel est ici.