Selenium Docker command赢得';除非我打开一个交互式bash终端,否则无法工作

Selenium Docker command赢得';除非我打开一个交互式bash终端,否则无法工作,selenium,docker,nightwatch.js,Selenium,Docker,Nightwatch.js,我正在使用Docker使用nightwatch.js运行自动浏览器测试 当我打开一个交互式终端时,它工作正常,例如 docker run -it --rm username/image-name /bin/bash 这会给我一个bash提示,然后我运行: xvfb-run node nightwatch.js 一切正常 但当我跑步时: docker run --rm username/image-name xvfb-run node nightwatch.js 它只是挂着 打开bash终端

我正在使用Docker使用nightwatch.js运行自动浏览器测试

当我打开一个交互式终端时,它工作正常,例如

docker run -it --rm username/image-name /bin/bash
这会给我一个bash提示,然后我运行:

xvfb-run node nightwatch.js
一切正常

但当我跑步时:

docker run --rm username/image-name xvfb-run node nightwatch.js
它只是挂着


打开bash终端并手动运行test命令与直接运行test命令有什么区别?当然,它们都应该起作用?

好的,所以我仍然不知道是什么导致了这个问题,但我有一个解决办法,效果很好:

将bash作为守护进程运行:

CONTAINERID=$(docker run -it -d username/image-name /bin/bash)
然后使用docker exec:

当然,之后您需要进行一些整理:

docker stop $CONTAINERID
docker rm $CONTAINERID

在容器内部和外部运行node nightwatch.js可能有不同的含义。在容器内运行时,它可能可以访问项目,但在容器外,它是一个完全不同的区域。您可以将其包含在docker文件中。对于
docker run--rm username/image name xvfb run node nightwatch.js
使用选项
-ti
是否有帮助?谢谢您的建议,但是添加-ti选项没有帮助。容器可以通过装入的卷访问项目,例如-v$(pwd):/tmp/@simbro,基本映像是什么?Hi@Rao,基本映像是ubuntu:16.04
docker stop $CONTAINERID
docker rm $CONTAINERID