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 Copier lienLien copié sur presse-papiers!
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
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
$ podman inspect --format='{{ index .Config.Labels "io.openshift.s2i.scripts-url" }}' wildfly/wildfly-centos7
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
image:///usr/libexec/s2i
image:///usr/libexec/s2i
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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.
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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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.
ImportantLors 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
#!/bin/bash echo "Before running application" exec /usr/libexec/s2i/run
Copy to Clipboard Copied! Toggle word wrap Toggle overflow