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.