7.2. Construire des crochets
Les crochets de construction permettent d’injecter le comportement dans le processus de construction.
Le champ postCommit d’un objet BuildConfig exécute des commandes à l’intérieur d’un conteneur temporaire qui exécute l’image de sortie de build. Le crochet est exécuté immédiatement après que la dernière couche de l’image a été commise et avant que l’image ne soit poussée à un registre.
Le répertoire de travail actuel est défini sur le WORKDIR de l’image, qui est le répertoire de travail par défaut de l’image conteneur. Dans la plupart des images, c’est là que se trouve le code source.
Le crochet échoue si le script ou la commande renvoie un code de sortie non nul ou si le démarrage du conteneur temporaire échoue. Lorsque le crochet échoue, il marque la construction comme ayant échoué et l’image n’est pas poussée vers un registre. La raison de l’échec peut être inspectée en regardant les journaux de construction.
Les crochets de construction peuvent être utilisés pour exécuter des tests unitaires pour vérifier l’image avant que la construction ne soit marquée et que l’image soit disponible dans un registre. Lorsque tous les tests passent et que le coureur d’essai retourne avec le code de sortie 0, la construction est marquée avec succès. En cas de défaillance du test, la construction est marquée comme ayant échoué. Dans tous les cas, le journal de construction contient la sortie du coureur de test, qui peut être utilisé pour identifier les tests échoués.
Le crochet postCommit est non seulement limité à l’exécution de tests, mais peut également être utilisé pour d’autres commandes. Comme il fonctionne dans un conteneur temporaire, les modifications apportées par le crochet ne persistent pas, ce qui signifie que l’exécution du crochet ne peut pas affecter l’image finale. Ce comportement permet, entre autres, l’installation et l’utilisation de dépendances de test qui sont automatiquement éliminées et ne sont pas présentes dans l’image finale.
7.2.1. Configuration des crochets de construction de post commit Copier lienLien copié sur presse-papiers!
Il existe différentes façons de configurer le crochet post-construction. Dans les exemples suivants, tous les formulaires sont équivalents et exécutent le test de rake de bundle exec --verbose.
Procédure
Employez l’une des options suivantes pour configurer les crochets post-build:
Expand L’option Description Le script shell
postCommit: script: "bundle exec rake test --verbose"
postCommit: script: "bundle exec rake test --verbose"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La valeur du script est un script shell à exécuter avec /bin/sh -ic. Cette option est utilisée lorsqu’un script shell est approprié pour exécuter le crochet de construction. À titre d’exemple, pour l’exécution de tests unitaires comme ci-dessus. Contrôler le point d’entrée de l’image ou si l’image n’a pas /bin/sh, utiliser la commande, ou args, ou les deux.
NoteLe drapeau -i supplémentaire a été introduit pour améliorer l’expérience de travail avec les images CentOS et RHEL, et pourrait être supprimé dans une version ultérieure.
Commande comme point d’entrée d’image
postCommit: command: ["/bin/bash", "-c", "bundle exec rake test --verbose"]
postCommit: command: ["/bin/bash", "-c", "bundle exec rake test --verbose"]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans cette forme, la commande est la commande à exécuter, qui remplace le point d’entrée de l’image dans le formulaire exec, comme documenté dans la référence Dockerfile. Ceci est nécessaire si l’image n’a pas /bin/sh, ou si vous ne voulez pas utiliser un shell. Dans tous les autres cas, l’utilisation du script peut être plus pratique.
Commande avec arguments
postCommit: command: ["bundle", "exec", "rake", "test"] args: ["--verbose"]
postCommit: command: ["bundle", "exec", "rake", "test"] args: ["--verbose"]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ce formulaire est équivalent à l’ajout des arguments à la commande.
Fournir à la fois le script et la commande crée simultanément un crochet de construction invalide.
7.2.2. En utilisant le CLI pour définir les crochets de construction de post commit Copier lienLien copié sur presse-papiers!
La commande oc set build-hook peut être utilisée pour définir le crochet de construction pour une configuration de construction.
Procédure
Effectuer l’une des actions suivantes:
Afin de définir une commande en tant que crochet post-commit build, entrez la commande suivante:
oc set build-hook bc/mybc \ --post-commit \ --command \ -- bundle exec rake test --verbose
$ oc set build-hook bc/mybc \ --post-commit \ --command \ -- bundle exec rake test --verbose
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Afin de définir un script en tant que crochet post-commit build, entrez la commande suivante:
oc set build-hook bc/mybc --post-commit --script="bundle exec rake test --verbose"
$ oc set build-hook bc/mybc --post-commit --script="bundle exec rake test --verbose"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow