4.4. À propos de tester des images source-à-image


En tant qu’auteur d’image de constructeur de source à image (S2I), vous pouvez tester votre image S2I localement et utiliser le service Red Hat OpenShift sur le système de construction AWS pour des tests automatisés et une intégration continue.

Le S2I nécessite que les scripts d’assemblage et d’exécution soient présents pour exécuter avec succès la construction S2I. Fournir le script de sauvegarde-artefacts réutilise les artefacts de construction, et fournir le script d’utilisation garantit que les informations d’utilisation sont imprimées sur console lorsque quelqu’un exécute l’image du conteneur en dehors du S2I.

Le but de tester une image S2I est de s’assurer que toutes ces commandes décrites fonctionnent correctement, même si l’image du conteneur de base a changé ou si l’outil utilisé par les commandes a été mis à jour.

4.4.1. Comprendre les exigences en matière de tests

L’emplacement standard du script de test est test/run. Ce script est invoqué par le Red Hat OpenShift Service sur le constructeur d’images AWS S2I et il pourrait s’agir d’un simple script Bash ou d’un binaire Go statique.

Le script test/exécution effectue la construction S2I, vous devez donc avoir le binaire S2I disponible dans votre $PATH. Au besoin, suivez les instructions d’installation dans le README S2I.

Le S2I combine le code source de l’application et l’image du constructeur, de sorte que pour le tester, vous avez besoin d’un exemple de source d’application pour vérifier que la source se transforme avec succès en une image de conteneur exécutable. L’exemple d’application devrait être simple, mais il devrait exercer les étapes cruciales de l’assemblage et de l’exécution des scripts.

4.4.2. Générer des scripts et des outils

L’outillage S2I est livré avec des outils de génération puissants pour accélérer le processus de création d’une nouvelle image S2I. La commande s2i create produit tous les scripts S2I nécessaires et les outils de test avec le Makefile:

$ s2i create <image_name> <destination_directory>
Copy to Clipboard Toggle word wrap

Le script de test/exécution généré doit être ajusté pour être utile, mais il fournit un bon point de départ pour commencer à développer.

Note

Le script test/exécution produit par la commande de création s2i exige que les sources d’application de l’échantillon se trouvent dans le répertoire test/test-app.

4.4.3. Essais locaux

Le moyen le plus simple d’exécuter les tests d’image S2I localement est d’utiliser le Makefile généré.

Lorsque vous n’avez pas utilisé la commande création s2i, vous pouvez copier le modèle Makefile suivant et remplacer le paramètre IMAGE_NAME par le nom de votre image.

Échantillon Makefile

IMAGE_NAME = openshift/ruby-20-centos7
CONTAINER_ENGINE := $(shell command -v podman 2> /dev/null | echo docker)

build:
	${CONTAINER_ENGINE} build -t $(IMAGE_NAME) .

.PHONY: test
test:
	${CONTAINER_ENGINE} build -t $(IMAGE_NAME)-candidate .
	IMAGE_NAME=$(IMAGE_NAME)-candidate test/run
Copy to Clipboard Toggle word wrap

4.4.4. Flux de travail de test de base

Le script de test suppose que vous avez déjà construit l’image que vous souhaitez tester. Au besoin, construisez d’abord l’image S2I. Exécutez l’une des commandes suivantes:

  • Lorsque vous utilisez Podman, exécutez la commande suivante:

    $ podman build -t <builder_image_name>
    Copy to Clipboard Toggle word wrap
  • Lorsque vous utilisez Docker, exécutez la commande suivante:

    $ docker build -t <builder_image_name>
    Copy to Clipboard Toggle word wrap

Les étapes suivantes décrivent le flux de travail par défaut pour tester les constructeurs d’images S2I:

  1. Assurez-vous que le script d’utilisation fonctionne:

    • Lorsque vous utilisez Podman, exécutez la commande suivante:

      $ podman run <builder_image_name> .
      Copy to Clipboard Toggle word wrap
    • Lorsque vous utilisez Docker, exécutez la commande suivante:

      $ docker run <builder_image_name> .
      Copy to Clipboard Toggle word wrap
  2. Construire l’image:

    $ s2i build file:///path-to-sample-app _<BUILDER_IMAGE_NAME>_ _<OUTPUT_APPLICATION_IMAGE_NAME>_
    Copy to Clipboard Toggle word wrap
  3. Facultatif: si vous prenez en charge les artefacts de sauvegarde, exécutez l’étape 2 une fois de plus pour vérifier que l’enregistrement et la restauration des artefacts fonctionne correctement.
  4. Exécutez le conteneur:

    • Lorsque vous utilisez Podman, exécutez la commande suivante:

      $ podman run <output_application_image_name>
      Copy to Clipboard Toggle word wrap
    • Lorsque vous utilisez Docker, exécutez la commande suivante:

      $ docker run <output_application_image_name>
      Copy to Clipboard Toggle word wrap
  5. Assurez-vous que le conteneur est en cours d’exécution et l’application répond.

L’exécution de ces étapes est généralement suffisante pour dire si l’image du constructeur fonctionne comme prévu.

Lorsque vous avez un Dockerfile et les autres artefacts qui composent votre nouvelle image de constructeur S2I, vous pouvez les mettre dans un référentiel git et utiliser Red Hat OpenShift Service sur AWS pour construire et pousser l’image. Définissez une construction Docker qui pointe vers votre référentiel.

Lorsque votre instance Red Hat OpenShift sur AWS est hébergée sur une adresse IP publique, la construction peut être déclenchée chaque fois que vous appuyez dans votre référentiel GitHub image du constructeur S2I.

Il est également possible d’utiliser ImageChangeTrigger pour déclencher une reconstruction de vos applications basées sur l’image du constructeur S2I que vous avez mise à jour.

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