4.3. Création d’images à partir du code source avec source-à-image
La source à image (S2I) est un framework qui facilite l’écriture d’images qui prennent le code source de l’application comme entrée et produisent une nouvelle image qui exécute l’application assemblée en sortie.
Le principal avantage de l’utilisation de S2I pour construire des images de conteneurs reproductibles est la facilité d’utilisation pour les développeurs. En tant qu’auteur d’images de constructeur, vous devez comprendre deux concepts de base afin que vos images fournissent les meilleures performances S2I, le processus de construction et les scripts S2I.
4.3.1. Comprendre le processus de création de source à image Copier lienLien copié sur presse-papiers!
Le processus de construction se compose des trois éléments fondamentaux suivants, qui sont combinés dans une image finale du conteneur:
- Les sources
- Scripts source à image (S2I)
- Image du constructeur
Le S2I génère un Dockerfile avec l’image du constructeur comme première instruction FROM. Le Dockerfile généré par S2I est ensuite transmis à Buildah.
4.3.2. Comment écrire des scripts source à image Copier lienLien copié sur presse-papiers!
Il est possible d’écrire des scripts source à image (S2I) dans n’importe quel langage de programmation, tant que les scripts sont exécutables à l’intérieur de l’image du constructeur. Le S2I prend en charge plusieurs options fournissant des scripts assemble/run/save-artefacts. L’ensemble de ces emplacements sont vérifiés sur chaque construction dans l’ordre suivant:
- Le script spécifié dans la configuration de build.
- Le script trouvé dans le répertoire source de l’application .s2i/bin.
- Script trouvé à l’URL de l’image par défaut avec l’étiquette io.openshift.s2i.scripts-url.
L’étiquette io.openshift.s2i.scripts-url spécifiée dans l’image et le script spécifié dans une configuration de build peuvent prendre l’une des formes suivantes:
- image:///path_to_scripts_dir: chemin absolu à l’intérieur de l’image vers un répertoire où se trouvent les scripts S2I.
- file:///path_to_scripts_dir: chemin relatif ou absolu vers un répertoire sur l’hôte où se trouvent les scripts S2I.
- HTTP(s)://path_to_scripts_dir: URL vers un répertoire où se trouvent les scripts S2I.
Le script | Description |
---|---|
| Le script assemble les artefacts de l’application à partir d’une source et les place dans des répertoires appropriés à l’intérieur de l’image. Ce script est requis. Le flux de travail de ce script est:
|
| Le script d’exécution exécute votre application. Ce script est requis. |
| Le script sauvegarde-artefacts rassemble toutes les dépendances qui peuvent accélérer les processus de construction qui suivent. Ce script est facultatif. À titre d’exemple:
Ces dépendances sont rassemblées dans un fichier goudron et diffusées vers la sortie standard. |
| Le script d’utilisation vous permet d’informer l’utilisateur comment utiliser correctement votre image. Ce script est facultatif. |
| Le script test/exécution vous permet de créer un processus pour vérifier si l’image fonctionne correctement. Ce script est facultatif. Le déroulement proposé de ce processus est:
Note L’emplacement suggéré pour mettre l’application de test construite par votre script test/exécution est le répertoire test/test-app dans votre référentiel d’images. |
Exemples de scripts S2I
Les exemples de scripts S2I suivants sont écrits en Bash. Chaque exemple suppose que son contenu de goudron est déballé dans le répertoire /tmp/s2i.
assembler le script:
exécutez le script:
run the application
#!/bin/bash
# run the application
/opt/application/run.sh
script de sauvegarde-artefacts:
script d’utilisation: