除非我打开一个交互式bash终端,否则Docker命令将无法工作

时间:2016-12-13 20:45:03

标签: 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终端和手动运行test命令,直接运行test命令有什么区别?他们肯定都应该工作吗?

1 个答案:

答案 0 :(得分:1)

好的,所以我仍然不知道造成这个问题的原因,但我有一个很好的解决方法:

将bash作为守护程序运行:

CONTAINERID=$(docker run -it -d username/image-name /bin/bash)

然后使用 docker exec

docker exec $CONTAINERID xvfb-run node nightwatch.js

当然,你需要做一些整理:

docker stop $CONTAINERID
docker rm $CONTAINERID