diff --git a/auth/auth-cass/docker/drun.sh b/auth/auth-cass/docker/drun.sh
index 1bcff83..7d05c7f 100644
--- a/auth/auth-cass/docker/drun.sh
+++ b/auth/auth-cass/docker/drun.sh
@@ -27,6 +27,7 @@
     -e CASSANDRA_DC=dc1 \
     -e CASSANDRA_CLUSTER_NAME=osaaf \
     -v "aaf_cass_data:/var/lib/cassandra" \
+    -v "aaf_status:/opt/app/aaf/status" \
     $PUBLISH \
     -d ${PREFIX}${ORG}/${PROJECT}/aaf_cass:${VERSION} "onap"
 else 
diff --git a/auth/docker/Dockerfile.config b/auth/docker/Dockerfile.config
index bc1eafc..59d8c56 100644
--- a/auth/docker/Dockerfile.config
+++ b/auth/docker/Dockerfile.config
@@ -13,6 +13,7 @@
 COPY CA /opt/app/aaf_config/CA
 COPY logs /opt/app/aaf_config/logs
 COPY bin/service.sh /opt/app/aaf_config/bin/agent.sh
+COPY bin/pod_wait.sh /opt/app/aaf_config/bin/
 COPY bin/aaf-auth-cmd-${AAF_VERSION}-full.jar /opt/app/aaf_config/bin/
 
 ENTRYPOINT ["/bin/bash","/opt/app/aaf_config/bin/agent.sh"]
diff --git a/auth/docker/aaf.sh b/auth/docker/aaf.sh
index 0512944..6ba8631 100644
--- a/auth/docker/aaf.sh
+++ b/auth/docker/aaf.sh
@@ -5,6 +5,7 @@
 function run_it() {
   $DOCKER run $@ \
     -v "aaf_config:$CONF_ROOT_DIR" \
+    -v "aaf_status:/opt/app/aaf/status" \
     --add-host="$HOSTNAME:$HOST_IP" \
     --add-host="aaf.osaaf.org:$HOST_IP" \
     --env HOSTNAME=${HOSTNAME} \
@@ -24,9 +25,17 @@
 }
 
 PARAMS="$@"
-if [ -z "$PARAMS" ]; then
-  run_it --rm 
-else
-  run_it -it --rm 
-fi
+case "$1" in 
+  bash)
+    run_it -it --rm 
+    ;;
+  -it)
+    shift 
+    PARAMS="$@"
+    run_it -it --rm 
+    ;;
+  *)
+    run_it --rm 
+    ;;
+esac
 
diff --git a/auth/docker/drun.sh b/auth/docker/drun.sh
index 358e923..f5756b8 100644
--- a/auth/docker/drun.sh
+++ b/auth/docker/drun.sh
@@ -25,7 +25,7 @@
 DOCKER=${DOCKER:=docker}
 
 # Running without params keeps from being TTY
-bash aaf.sh 
+bash ./aaf.sh 
 
 if [ "$1" == "" ]; then
     AAF_COMPONENTS=$(cat components)
@@ -34,31 +34,49 @@
 fi
 
 for AAF_COMPONENT in ${AAF_COMPONENTS}; do
+    LINKS=""
+    CMD_LINE=""
+    PORTMAP=""
     case "$AAF_COMPONENT" in
     "service")
         PORTMAP="8100:8100"
         LINKS="--link aaf_cass:cassandra "
+        # CASS_HOST is for Container based Cassadra
+        if [ -z "$CASS_HOST" ]; then
+	  CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_service sleep 0 cd /opt/app/aaf;bin/service"
+        else
+	  CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_service aaf_cass cd /opt/app/aaf;bin/service"
+        fi
         ;;
     "locate")
         PORTMAP="8095:8095"
         LINKS="--link aaf_cass:cassandra "
+	CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_locate aaf_service cd /opt/app/aaf;bin/locate"
         ;;
     "oauth")
         PORTMAP="8140:8140"
         LINKS="--link aaf_cass:cassandra "
+	CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_oauth aaf_service cd /opt/app/aaf;bin/oauth"
         ;;
     "gui")
         PORTMAP="8200:8200"
+        LINKS=""
+	CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_gui aaf_locate cd /opt/app/aaf;bin/gui"
         ;;
     "cm")
         PORTMAP="8150:8150"
         LINKS="--link aaf_cass:cassandra "
+	CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_cm aaf_locate cd /opt/app/aaf;bin/cm"
         ;;
     "hello")
         PORTMAP="8130:8130"
+        LINKS=""
+	CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_hello aaf_locate cd /opt/app/aaf;bin/hello"
         ;;
     "fs")
         PORTMAP="80:8096"
+        LINKS=""
+	CMD_LINE="/bin/bash /opt/app/aaf/pod/pod_wait.sh aaf_fs aaf_locate cd /opt/app/aaf;bin/fs"
         ;;
     esac
 
@@ -74,8 +92,7 @@
        ADD_HOST="$ADD_HOST --add-host=$A:$HOST_IP"
     done
 
-    if [[ "$CASS_HOST" =~ ":" ]]; then
-       echo "Adding Cassandra Host $CASS_HOST"
+    if [ ! -z "$LINKS" ] && [[ "$CASS_HOST" =~ ":" ]]; then
        ADD_HOST="$ADD_HOST --add-host=$CASS_HOST"
     fi
     $DOCKER run \
@@ -95,5 +112,7 @@
         --env CASSANDRA_PORT=${CASSANDRA_PORT} \
         --publish $PORTMAP \
         -v "aaf_config:$CONF_ROOT_DIR" \
-        ${PREFIX}${ORG}/${PROJECT}/aaf_${AAF_COMPONENT}:${VERSION}
+        -v "aaf_status:/opt/app/aaf/status" \
+        ${PREFIX}${ORG}/${PROJECT}/aaf_${AAF_COMPONENT}:${VERSION} \
+	$CMD_LINE
 done
diff --git a/auth/sample/bin/pod_wait.sh b/auth/sample/bin/pod_wait.sh
index 1435036..5a8d062 100644
--- a/auth/sample/bin/pod_wait.sh
+++ b/auth/sample/bin/pod_wait.sh
@@ -27,6 +27,22 @@
   fi
 }
 
+function wait {
+  n=0
+  while [ $n -lt 40  ]; do 
+     rv="$(check)"
+     echo "$rv"
+     if [ "$rv" = "ready" ]; then
+       echo "$OTHER is $rv"
+       n=10000
+     else 
+       (( ++n )) 
+       echo "Sleep 10 (iteration $n)"
+       sleep 10
+     fi
+  done
+}
+
 function start {
   n=0
   while [ $n -lt 40  ]; do 
@@ -45,18 +61,26 @@
   done
 }
 
-if [ "sleep" = "$OTHER" ]; then
-  echo "Sleeping $1"
-  status "Sleeping $1"
-  sleep $1
-  shift
-  status "ready"
-  echo "Done"
-else
-  echo "App $APP is waiting to start until $OTHER is ready"
-  status "waiting for $OTHER"
-
-  start
-fi  
+case "$OTHER" in
+  sleep)
+    echo "Sleeping $1"
+    status "Sleeping $1"
+    sleep $1
+    shift
+    status "ready"
+    echo "Done"
+    ;;
+  wait)
+    OTHER="$1"
+    shift    
+    wait
+    ;;
+  *)
+    echo "App $APP is waiting to start until $OTHER is ready"
+    status "waiting for $OTHER"
+  
+    start
+  ;;
+esac  
 
 eval "$@"
diff --git a/auth/sample/bin/service.sh b/auth/sample/bin/service.sh
index 7e443b5..5116d36 100644
--- a/auth/sample/bin/service.sh
+++ b/auth/sample/bin/service.sh
@@ -248,6 +248,9 @@
     taillog) 
 	sh /opt/app/osaaf/logs/taillog
 	;;
+    wait)
+	bash $CONFIG/bin/pod_wait.sh wait $1
+        ;;
     --help | -?)
         case "$1" in
         "")
