Tutoriel : Création d'une image de conteneur - AWS Batch

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Tutoriel : Création d'une image de conteneur

Vous pouvez utiliser le AWS_BATCH_JOB_ARRAY_INDEX dans une définition de tâche dans le paramètre de commande. Toutefois, nous vous recommandons de créer une image de conteneur qui utilise plutôt la variable dans un script de point d'entrée. Cette section décrit comment créer une image de conteneur de ce type.

Pour créer votre image de conteneur Docker
  1. Créez un répertoire à utiliser en tant qu'espace de travail de votre image Docker et accédez à celui-ci.

  2. Créez un fichier nommé colors.txt dans le répertoire de votre espace de travail et collez-y le texte suivant.

    red orange yellow green blue indigo violet
  3. Créez un fichier nommé print-color.sh dans le répertoire de votre espace de travail et collez-y le texte suivant.

    Note

    La variable LINE est définie sur le code AWS_BATCH_JOB_ARRAY_INDEX + 1 car l'index de tableau commence à 0 mais les numéros de ligne commencent à 1. La COLOR variable est définie sur la couleur associée à son numéro de ligne. colors.txt

    #!/bin/sh LINE=$((AWS_BATCH_JOB_ARRAY_INDEX + 1)) COLOR=$(sed -n ${LINE}p /tmp/colors.txt) echo My favorite color of the rainbow is $COLOR.
  4. Créez un fichier nommé Dockerfile dans le répertoire de votre espace de travail et collez-y le contenu suivant. Ce Dockerfile copie les fichiers précédents vers votre conteneur et définit le script de point d'entrée à exécuter au lancement du conteneur.

    FROM busybox COPY print-color.sh /tmp/print-color.sh COPY colors.txt /tmp/colors.txt RUN chmod +x /tmp/print-color.sh ENTRYPOINT /tmp/print-color.sh
  5. Générez votre image Docker.

    $ docker build -t print-color .
  6. Testez votre conteneur avec le script suivant. Ce script définit la AWS_BATCH_JOB_ARRAY_INDEX variable sur 0 localement, puis l'incrémente pour simuler ce que fait une tâche matricielle avec sept enfants.

    $ AWS_BATCH_JOB_ARRAY_INDEX=0 while [ $AWS_BATCH_JOB_ARRAY_INDEX -le 6 ] do docker run -e AWS_BATCH_JOB_ARRAY_INDEX=$AWS_BATCH_JOB_ARRAY_INDEX print-color AWS_BATCH_JOB_ARRAY_INDEX=$((AWS_BATCH_JOB_ARRAY_INDEX + 1)) done

    En voici la sortie.

    My favorite color of the rainbow is red.
    My favorite color of the rainbow is orange.
    My favorite color of the rainbow is yellow.
    My favorite color of the rainbow is green.
    My favorite color of the rainbow is blue.
    My favorite color of the rainbow is indigo.
    My favorite color of the rainbow is violet.