多个Docker容器无法正确运行启动程序

我有一个脚本,生成多个容器(从一个单一的图像),具有相同的挂载数据量; 和相同的启动命令(但是这个命令具有不同的参数/参数)。 该命令接收一个video文件,并用指定的一组参数进行处理。

该脚本负责分配哪个video文件和哪些参数提供给容器。 每个容器只用一组参数处理1个video文件。 将结果写入具有不同文件名的数据卷中,最后退出。

容器像预期一样产生,但是只有每个video文件的第一个configuration得到处理(例如vid1 + config1和vid2 + config1)。 其他具有不同configuration的容器(例如vid1 + config2,vid1 + config3,vid2 + config2等)没有按预期完成 – 输出文件丢失或根本没有创build

这是生成容器的脚本:

#!/bin/bash source "$1" echo "DescriptorFile = ${DescriptorFile}" echo "nCounter Config File = ${nCounterConfigFile}" echo "HT_start = ${HT_start}" echo "HT_end = ${HT_end}" echo "HT_step = ${HT_step}" echo "VideoDirectory = ${VideoDirectory}" echo "VideoFileExtension = ${VideoFileExtension}" CURR_DIR=$PWD cd $VideoDirectory VideoDirectory=${VideoDirectory} currHT=$HT_start for f in $VideoDirectory*$VideoFileExtension do currHT=$HT_start while [ $(echo " $currHT <= $HT_end" | bc -l) == 1 ] do echo "Current active HT = $currHT" ##spawn containers (docker run -t \ -v ${VideoDirectory}:/home/validationVideos \ -v $CURR_DIR/modelFiles:/home/modelFiles \ -v $CURR_DIR/nCounterConfigFiles:/home/nCounterConfigFiles \ -v $CURR_DIR/Results:/home/results \ validationdocker /home/start.sh \ -f /home/validationVideos/${f##*/} -c /home/nCounterConfigFiles/$nCounterConfigFile -m /home/modelFiles/$DescriptorFile -h $currHT -l /home/dough_$CURR_CONTAINERS -w 0 -d $CURR_CONTAINERS && CURR_CONTAINERS=`expr $CURR_CONTAINERS - 1`) & CURR_CONTAINERS="$(echo $CURR_CONTAINERS + 1| bc)" currHT="$(echo $currHT + $HT_step | bc)" done done exit 

start.sh的用法是“Usage:command <-f videofile -c configfile -m datModelfile -h htvalue -l saveDoughLocation -w boolIntShowWindow -d dockerID

任何线索将非常感激! 我btw在Ubuntu 16.04运行docker1.13.1

最好,汤姆


以下是第一个Docker容器DocekrID_0上的docker日志的结果。 看到面团被创build并成功完成了处理

第二次运行时,即使只有一个参数改变,面团也不会被创build,并且绝对有效

docker事件的结果中没有显着的条目。 我想要把图片,但我不能由于Stackoverflow的限制