

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# コンテナイメージの構築
<a name="build-index-container"></a>

コマンドパラメータのジョブ定義を `AWS_BATCH_JOB_ARRAY_INDEX` で使用できます。 ただし、エントリポイントスクリプトで変数を使用するコンテナイメージを作成することをお勧めします。このセクションでは、そのようなコンテナイメージを作成する方法について説明します。

**Docker コンテナイメージを構築するには**

1. Docker イメージワークスペースとして使用する新しいディレクトリを作成し、そのディレクトリに移動します。

1. WorkSpace ディレクトリで、`colors.txt`という名前のファイルを作成し、以下を貼り付けます。

   ```
   red
   orange
   yellow
   green
   blue
   indigo
   violet
   ```

1. WorkSpace ディレクトリで、`print-color.sh`という名前のファイルを作成し、以下を貼り付けます。
**注記**  
配列インデックスは 0 から始まり、行番号は 1 から始まるため、`LINE` 変数は `AWS_BATCH_JOB_ARRAY_INDEX` \$11 に設定されます。`COLOR` 変数は、行番号に関連付けられている`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.
   ```

1. WorkSpace ディレクトリで、`Dockerfile`という名前のファイルを作成し、以下を貼り付けます。この Dockerfile は、以前のファイルをコンテナにコピーし、コンテナの起動時に実行するようにエントリポイントスクリプトを設定します。

   ```
   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
   ```

1. Docker イメージをビルドします。

   ```
   $ docker build -t print-color .
   ```

1. 次のスクリプトを使用してコンテナをテストします。このスクリプトは、`AWS_BATCH_JOB_ARRAY_INDEX` 変数をローカルで 0 に設定し、それをインクリメントして 7 つの子 が を行う配列ジョブが何をするのかをシミュレートします。

   ```
   $ 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
   ```

   出力を次に示します。

   ```
   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.
   ```