12.3. Personnalisation des images source-image


Les images de construction source-image (S2I) comprennent des scripts d'assemblage et d'exécution, mais le comportement par défaut de ces scripts n'est pas adapté à tous les utilisateurs. Vous pouvez personnaliser le comportement d'un constructeur S2I qui inclut des scripts par défaut.

12.3.1. Invoquer des scripts intégrés dans une image

Les images de construction fournissent leur propre version des scripts source-image (S2I) qui couvrent les cas d'utilisation les plus courants. Si ces scripts ne répondent pas à vos besoins, S2I permet de les remplacer en ajoutant des scripts personnalisés dans le répertoire .s2i/bin. Toutefois, ce faisant, vous remplacez complètement les scripts standard. Dans certains cas, le remplacement des scripts est acceptable, mais, dans d'autres scénarios, vous pouvez exécuter quelques commandes avant ou après les scripts tout en conservant la logique du script fourni dans l'image. Pour réutiliser les scripts standard, vous pouvez créer un script enveloppant qui exécute une logique personnalisée et délègue la suite du travail aux scripts par défaut de l'image.

Procédure

  1. Regardez la valeur de l'étiquette io.openshift.s2i.scripts-url pour déterminer l'emplacement des scripts à l'intérieur de l'image du constructeur :

    $ podman inspect --format='{{ index .Config.Labels "io.openshift.s2i.scripts-url" }}' wildfly/wildfly-centos7

    Exemple de sortie

    image:///usr/libexec/s2i

    Vous avez inspecté l'image du constructeur wildfly/wildfly-centos7 et découvert que les scripts se trouvent dans le répertoire /usr/libexec/s2i.

  2. Créez un script qui comprend une invocation de l'un des scripts standard enveloppée dans d'autres commandes :

    .s2i/bin/assemble scénario

    #!/bin/bash
    echo "Before assembling"
    
    /usr/libexec/s2i/assemble
    rc=$?
    
    if [ $rc -eq 0 ]; then
        echo "After successful assembling"
    else
        echo "After failed assembling"
    fi
    
    exit $rc

    Cet exemple montre un script d'assemblage personnalisé qui imprime le message, exécute le script d'assemblage standard à partir de l'image et imprime un autre message en fonction du code de sortie du script d'assemblage.

    Important

    Lorsque vous enveloppez le script d'exécution, vous devez utiliser exec pour l'invoquer afin de vous assurer que les signaux sont traités correctement. L'utilisation de exec empêche également d'exécuter des commandes supplémentaires après avoir invoqué le script d'exécution de l'image par défaut.

    .s2i/bin/run scénario

    #!/bin/bash
    echo "Before running application"
    exec /usr/libexec/s2i/run

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.

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 leBlog 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.

© 2024 Red Hat, Inc.