11.3. Personnalisation des images source-à-image


Les images source à image (S2I) incluent l’assemblage et l’exécution de scripts, mais le comportement par défaut de ces scripts ne convient pas à tous les utilisateurs. Il est possible de personnaliser le comportement d’un constructeur S2I qui inclut des scripts par défaut.

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

Les images du constructeur fournissent leur propre version des scripts source à image (S2I) qui couvrent les cas d’utilisation les plus courants. Dans le cas où ces scripts ne répondent pas à vos besoins, S2I fournit un moyen de les remplacer en ajoutant des scripts personnalisés dans le répertoire .s2i/bin. Cependant, en faisant cela, 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. Afin de réutiliser les scripts standard, vous pouvez créer un script d’emballage qui exécute une logique personnalisée et les délégués travaillent davantage aux scripts par défaut de l’image.

Procédure

  1. Examinez 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
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    image:///usr/libexec/s2i
    Copy to Clipboard Toggle word wrap

    L’image du constructeur wildfly/wildfly-centos7 a été inspectée et vous avez découvert que les scripts se trouvent dans le répertoire /usr/libexec/s2i.

  2. Créez un script qui inclut une invocation de l’un des scripts standard enveloppés dans d’autres commandes:

    .s2i/bin/assembler le script

    #!/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
    Copy to Clipboard Toggle word wrap

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

    Important

    Lors de l’emballage du script d’exécution, vous devez utiliser exec pour l’invoquer afin de s’assurer que les signaux sont traités correctement. L’utilisation d’exec empêche également la possibilité 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 script

    #!/bin/bash
    echo "Before running application"
    exec /usr/libexec/s2i/run
    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