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.

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’optionDescription

    Le script shell

    postCommit:
      script: "bundle exec rake test --verbose"
    Copy to Clipboard Toggle word wrap

    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.

    Note

    Le 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"]
    Copy to Clipboard Toggle word wrap

    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"]
    Copy to Clipboard Toggle word wrap

    Ce formulaire est équivalent à l’ajout des arguments à la commande.

Note

Fournir à la fois le script et la commande crée simultanément un crochet de construction invalide.

La commande oc set build-hook peut être utilisée pour définir le crochet de construction pour une configuration de construction.

Procédure

  1. 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
      Copy to Clipboard Toggle word wrap
    • 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"
      Copy to Clipboard Toggle word wrap
Retour au début
Red Hat logoGithubredditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

Theme

© 2025 Red Hat