Apache Hop publie des images Docker officielles. Elles simplifient l’exécution sur un serveur, dans une chaîne CI ou sur Kubernetes. Voici comment s’en servir.

Exécuter un pipeline en une commande

L’image apache/hop contient Hop Run. On monte le dossier du projet et on indique le pipeline à lancer :

docker run --rm 
  -v $(pwd)/orders:/project 
  -e HOP_PROJECT_FOLDER=/project 
  -e HOP_PROJECT_NAME=orders 
  -e HOP_ENVIRONMENT_NAME=prod 
  -e HOP_ENVIRONMENT_CONFIG_FILE_NAME_PATHS=/project/env/prod.json 
  -e HOP_FILE_PATH=load-orders.hpl 
  -e HOP_RUN_CONFIG=local 
  apache/hop:latest

Les variables HOP_* remplacent les options de la ligne de commande. Le conteneur se termine quand le pipeline se termine : c’est parfait pour un ordonnanceur ou un job CI.

Passer des secrets

Ne mettez pas de mots de passe dans les fichiers d’environnement versionnés. Injectez-les comme variables Docker (-e DB_PASSWORD=…) et référencez-les dans Hop avec ${DB_PASSWORD}. Sur Kubernetes, utilisez un Secret monté en variables d’environnement.

Hop Server en conteneur

L’image apache/hop-web fournit Hop GUI dans le navigateur ; pour l’exécution distante, on utilise l’image standard avec HOP_SERVER_* :

docker run -d -p 8080:8080 
  -v $(pwd)/orders:/project 
  -e HOP_SERVER_PORT=8080 
  -e HOP_SERVER_USER=admin 
  -e HOP_SERVER_PASS=change-me 
  -e HOP_PROJECT_FOLDER=/project 
  -e HOP_PROJECT_NAME=orders 
  apache/hop:latest /opt/hop/hop-server.sh

Hop GUI peut alors envoyer les pipelines à ce serveur via une configuration d’exécution « remote ».

Dans une chaîne CI

Le même conteneur lance les tests unitaires de pipelines à chaque commit. C’est exactement ce que nous mettons en place au module hop-02.

Les noms de variables évoluent d’une version à l’autre : vérifiez la documentation de l’image pour la version que vous utilisez.

Prêt à ouvrir Hop GUI ?

Six places par session. Devis sous 48 h, financement OPCO possible.

Réserver une place