在shell脚本中我正在构建一些docker镜像(在后台),一旦完成我正在运行它们(在后台)然后我必须等待所有这些完成。代码如下所示:
for tag in "${tags[@]}"
do
docker build -f dockerFilePath -t $tag . &
done
wait
for tag in "${tags[@]}"
do
docker run $tag arg1 arg2 | tee logoutput &
done
wait
问题是并非第二个等待部分中的所有docker run命令都能够完成。 docker run命令需要不同的时间才能完成,其中任何一个命令总是不完整的(总共4个)。
另外,我读到等待仅适用于调用wait的进程的直接子进程,在这种情况下,我认为所有docker build和docker run命令都是脚本进程的直接子进程。或者这是错误的假设?