本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學課程:建置容器映像
您可以在命令參數AWS_BATCH_JOB_ARRAY_INDEX
的任務定義中使用 。不過,我們建議您建立容器映像,以改為在進入點指令碼中使用 變數。本節說明如何建立此類容器映像。
建置 Docker 容器影像
-
建立新的目錄做為您的 Docker 影像工作空間,然後瀏覽至該目錄。
-
在
colors.txt
工作區目錄中建立名為 的檔案,並將以下內容貼到其中。red orange yellow green blue indigo violet
-
在
print-color.sh
工作區目錄中建立名為 的檔案,並將以下內容貼到其中。注意
LINE
變數設定為AWS_BATCH_JOB_ARRAY_INDEX
+ 1,因為陣列索引起始為 0,但行號從 1 開始。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.
-
在
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
-
建置 Docker 映像。
$
docker build -t print-color .
-
使用以下指令碼測試容器。此指令碼會將
AWS_BATCH_JOB_ARRAY_INDEX
變數設定為 0,然後在本機遞增,以模擬七個子項的陣列任務。$
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.