連続して5つのジョブを提出する必要がありました。
これが私の命令です -
INPUT - 1000 1001 1002 1003 1004
docker run -d --net ${NETWORK} ${IMAGE}:${TAG} populate_data --for-year {INPUT}
デフォルトでは、各入力に対してdockerコマンドを実行する必要があります。
docker run -d --net ${NETWORK} ${IMAGE}:${TAG} populate_data --for-data 1000 ||
docker run -d --net ${NETWORK} ${IMAGE}:${TAG} populate_data --for-data 1001 ||
docker run -d --net ${NETWORK} ${IMAGE}:${TAG} populate_data --for-data 1002 ||
docker run -d --net ${NETWORK} ${IMAGE}:${TAG} populate_data --for-data 1003 ||
docker run -d --net ${NETWORK} ${IMAGE}:${TAG} populate_data --for-data 1004
上記は私が解決した方法です。もっと良い方法がないかと思っています。
答え1
コメントでは、Bodoが提案したコマンドは5つのコマンドを順番に実行します。
for INPUT in 1000 1001 1002 1003 1004; do docker run -d --net "${NETWORK}" "${IMAGE}":"${TAG}" populate_data --for-year "${INPUT}"; done
または、次を展開します。
for INPUT in 1000 1001 1002 1003 1004
do
docker run -d --net "${NETWORK}" "${IMAGE}":"${TAG}" populate_data --for-year "${INPUT}"
done
$NETWORK
もちろん、これに合理的な値を設定したとします$IMAGE
。$TAG
上記のループは、次のコマンドを順番に実行します。
docker run -d --net "${NETWORK}" "${IMAGE}":"${TAG}" populate_data --for-year 1000
docker run -d --net "${NETWORK}" "${IMAGE}":"${TAG}" populate_data --for-year 1001
docker run -d --net "${NETWORK}" "${IMAGE}":"${TAG}" populate_data --for-year 1002
docker run -d --net "${NETWORK}" "${IMAGE}":"${TAG}" populate_data --for-year 1003
docker run -d --net "${NETWORK}" "${IMAGE}":"${TAG}" populate_data --for-year 1004
コマンドを並列に実行するには、&
コマンドの最後にを追加するだけですdocker
。