Docker 命令将无法运行,除非我打开交互式 bash 终端
Docker command won't work unless I open an interactive bash terminal
我正在使用 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 终端和手动 运行ning 测试命令与直接 运行ning 测试命令有什么区别?当然他们都应该工作?
好的,所以我仍然不知道是什么导致了这个问题,但我有一个非常有效的解决方法:
运行 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
我正在使用 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 终端和手动 运行ning 测试命令与直接 运行ning 测试命令有什么区别?当然他们都应该工作?
好的,所以我仍然不知道是什么导致了这个问题,但我有一个非常有效的解决方法:
运行 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