From 15dc14f5b6eed565e76449945f66c9f4a52d1dc6 Mon Sep 17 00:00:00 2001 From: polar Date: Wed, 20 Sep 2017 09:41:47 -0400 Subject: [PATCH] Trying to modify run.sh so it waits for the Xvfb server to start accepting connections. --- Dockerfile | 1 + run.sh | 20 ++++++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 401c44f..90a81d1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,6 +15,7 @@ RUN apt-get -qq update \ libprotobuf-dev \ libxxf86vm-dev \ xvfb \ + netcat \ && echo "deb https://deb.nodesource.com/node_6.x stretch main" >> /etc/apt/sources.list.d/nodejs.list \ && echo "deb-src https://deb.nodesource.com/node_6.x stretch main" >> /etc/apt/sources.list.d/nodejs.list \ && apt-get -qq update \ diff --git a/run.sh b/run.sh index a12a256..3847513 100755 --- a/run.sh +++ b/run.sh @@ -1,9 +1,25 @@ #!/bin/bash start-stop-daemon --start --pidfile ~/xvfb.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -screen 0 1024x768x24 -ac +extension GLX +render -noreset -timeout 15 bash -c 'until echo > /dev/tcp/localhost/99; do sleep 0.5; done' +let p=80 +while [ ${p} -lt 3000 ] + do + if nc -z localhost ${p}; then + let p+=1 + else + let port=p + break + fi + done + echo The port is ${port} -export DISPLAY=:99.0 +if ${port}; then + timeout 15 bash -c "until echo > /dev/tcp/localhost/${port}; do sleep 0.5; done" +else + exit 1 +fi + +export DISPLAY=:${port}.0 cd /data node /usr/src/app/ -p 80 "$@"