Crear una imagen de contenedor
Puede utilizar el AWS_BATCH_JOB_ARRAY_INDEX en una definición de trabajo en el parámetro de comando. Sin embargo, se recomienda crear una imagen contenedor que utilice la variable en un script de punto de entrada en su lugar. En esta sección, se describe cómo crear dicha imagen de contenedor.
Para compilar la imagen de contenedor de Docker
-
Cree un directorio nuevo para utilizarlo como espacio de trabajo de la imagen de Docker y desplácese a él.
-
Cree un archivo denominado
colors.txten el directorio del espacio de trabajo y pegue en él el contenido siguiente.red orange yellow green blue indigo violet -
Cree un archivo denominado
print-color.shen el directorio del espacio de trabajo y pegue en él el contenido siguiente.nota
La variable
LINEse establece enAWS_BATCH_JOB_ARRAY_INDEX+ 1 debido a que el índice de matriz empieza en 0, pero los números de línea empiezan en 1. La variableCOLORse establece en el color decolors.txtque está asociado a su número de línea.#!/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. -
Cree un archivo denominado
Dockerfileen el directorio del espacio de trabajo y pegue en él el contenido siguiente. Este Dockerfile copia los archivos anteriores en el contenedor y configura el script de punto de entrada para que se ejecute al iniciarse el contenedor.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 -
Compile la imagen de Docker.
$docker build -t print-color . -
Pruebe el contenedor con el script siguiente. Este script establece la variable
AWS_BATCH_JOB_ARRAY_INDEXen 0 localmente y, a continuación, incrementa su valor para simular lo que haría un trabajo de matriz con siete elementos secundarios.$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)) doneSe genera la siguiente salida.
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.