+ start_keepproxy=true
+ fi
+
+ if [[ $start_nameserver != false ]]
+ then
+ $DOCKER ps | grep skydns >/dev/null
+ need_skydns="$?"
+
+ $DOCKER ps | grep skydock >/dev/null
+ need_skydock="$?"
+
+ if [[ "$need_skydns" != 0 || "$need_skydock" != 0 ]]
+ then
+ # skydns and skydock need to both be running before everything else.
+ # If they are not running we need to shut everything down and start
+ # over, otherwise DNS will be broken and the containers won't find each other.
+ do_stop
+ need_skydns=1
+ need_skydock=1
+ fi
+
+ # We rely on skydock and skydns for dns discovery between the slurm controller and compute nodes,
+ # so make sure they are running
+ $DOCKER ps | grep skydns >/dev/null
+ if [[ $need_skydns != "0" ]]; then
+ echo "Detecting bridge '$bridge' IP for crosbymichael/skydns"
+ bridge_ip=$(bridge_ip_address "$bridge")
+
+ echo "Starting crosbymichael/skydns container..."
+ $DOCKER rm "skydns" 2>/dev/null
+ echo $DOCKER run -d -p $bridge_ip:53:53/udp --name skydns crosbymichael/skydns -nameserver 8.8.8.8:53 -domain arvados
+ $DOCKER run -d -p $bridge_ip:53:53/udp --name skydns crosbymichael/skydns -nameserver 8.8.8.8:53 -domain arvados
+ fi
+ $DOCKER ps | grep skydock >/dev/null
+ if [[ "$need_skydock" != "0" ]]; then
+ echo "Starting crosbymichael/skydock container..."
+ $DOCKER rm "skydock" 2>/dev/null
+ echo $DOCKER run -d -v /var/run/docker.sock:/docker.sock --name skydock crosbymichael/skydock -ttl 30 -environment dev -s /docker.sock -domain arvados -name skydns
+ $DOCKER run -d -v /var/run/docker.sock:/docker.sock --name skydock crosbymichael/skydock -ttl 30 -environment dev -s /docker.sock -domain arvados -name skydns
+ fi