@@ -35,11 +35,15 @@ function http_server_start() {
3535
3636 mkdir -p " ${dir} "
3737
38+ echo " # starting HTTP server container '${cname} ' on port ${port} ..." >&3
39+
3840 docker run -d --rm --name " ${cname} " \
3941 -p " ${port} :8080" \
4042 -v " ${dir} " :/data \
41- python:3 sh -c '
42- pip install flask > /dev/null && \
43+ python:3 sh -c ' \
44+ echo "Installing Flask..." >&2 && \
45+ pip install flask > /dev/null 2>&1 && \
46+ echo "Flask installed, starting server..." >&2 && \
4347 echo "
4448import os
4549import json
@@ -98,6 +102,17 @@ def receive_event():
98102app.run(host=\"0.0.0.0\", port=8080)
99103 " > app.py && python app.py
100104'
105+
106+ # Give container a moment to start
107+ sleep 2
108+
109+ # Check if container is running
110+ if docker ps --format " table {{.Names}}" | grep -q " ^${cname} $" ; then
111+ echo " # HTTP server container '${cname} ' started successfully" >&3
112+ else
113+ echo " # WARNING: HTTP server container '${cname} ' may not have started properly" >&3
114+ docker logs " ${cname} " 2>&1 | head -10 >&3
115+ fi
101116}
102117
103118function http_server_stop() {
@@ -107,16 +122,23 @@ function http_server_stop() {
107122
108123function wait_for_http_server() {
109124 local port=" $1 "
110- local timeout=10
125+ local timeout=30
111126 local elapsed=0
112127
128+ echo " # waiting for HTTP server on port ${port} ..." >&3
129+
113130 while [ " $elapsed " -lt " $timeout " ]; do
114131 if curl --silent --fail --output /dev/null " http://127.0.0.1:${port} /reset" ; then
132+ echo " # HTTP server ready on port ${port} after ${elapsed} s" >&3
115133 return 0
116134 fi
117135 sleep 1
118136 elapsed=$(( elapsed + 1 ))
137+ if [ $(( elapsed % 5 )) -eq 0 ]; then
138+ echo " # still waiting for HTTP server on port ${port} ... (${elapsed} s elapsed)" >&3
139+ fi
119140 done
120141
142+ echo " # HTTP server failed to start on port ${port} after ${timeout} s" >&3
121143 return 1
122144}
0 commit comments