I'm using Docker to running automated browser testing using nightwatch.js
When I open an interactive terminal it works fine, e.g.
docker run -it --rm username/image-name /bin/bash
that gives me a bash prompt and I run:
xvfb-run node nightwatch.js
and everything works fine.
But when I run:
docker run --rm username/image-name xvfb-run node nightwatch.js
It just hangs.
What's the difference between opening a bash terminal and manually running the test command, and just running the test command directly? Surely they should both work?
Ok so I still don't know what is causing this issue, but I have a workaround that works quite well:
Run bash as a daemon:
CONTAINERID=$(docker run -it -d username/image-name /bin/bash)
Then use docker exec:
docker exec $CONTAINERID xvfb-run node nightwatch.js
Of course you will need to do some tidying up afterwards:
docker stop $CONTAINERID
docker rm $CONTAINERID