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 ». Voir aussi notre article sur Hop Server et l’exécution distante.

Dans une chaîne CI

Le même conteneur lance les tests unitaires de pipelines à chaque commit, par exemple depuis un pipeline Jenkins. C’est exactement ce que nous mettons en place dans la formation Apache Hop — Perfectionnement et industrialisation.

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

Un projet Apache Hop ? Parlons-en.

Devis et programme détaillé sous 48 h ouvrées. Convention et attestation de formation fournies.

Demander un devis