我有一个使用ubuntu基本映像的Dockerfile,并使用apt-get和dpkg安装了一堆依赖项。然后它复制一些javascript文件并运行节点应用程序。节点应用程序生成子进程并执行xvfb-run selenium-standalone start
。
如果我使用--no-cache构建docker镜像并使用docker run -i -t <image id>
运行它,我的应用程序将启动并立即连接到selenium服务器。如果我使用CTRL-C或docker stop <container id>
杀死容器,然后运行与上面完全相同的docker run
命令,我的应用程序正常启动,但无法连接到selenium服务器。如果我不管它,五分钟后,它会自行连接。每次运行docker run
时,它都会以这种方式运行,直到我进行干净的图像构建。
更改节点源文件并主要从缓存重建不会改变此行为。我已经多次重复这个过程了,它总是一样的。
如果使用相同的图像,我无法弄清楚行为如何从一个docker run
更改为下一个List
。共享状态在哪里?
工作时记录:
gulp run
22:42:31.541 INFO - 启动一个独立的Selenium Server
将系统属性webdriver.chrome.driver设置为/usr/lib/node_modules/selenium-standalone/.selenium/chromedriver/2.16-x64-chromedriver
22:42:31.579 INFO - Java:Oracle Corporation 24.79-b02
22:42:31.579 INFO - OS:Linux 3.18.5-tinycore64 amd64
22:42:31.594 INFO - v2.46.0,Core v2.46.0。根据修订版87c69e2建造 22:42:31.676 INFO - 跳过驱动程序提供商org.openqa.selenium.ie.InternetExplorerDriver注册: 注册功能[{platform = WINDOWS,ensureCleanSession = true,browserName = internet explorer,version =}]与当前平台LINUX不匹配 22:42:31.676 INFO - 未找到驱动程序类:com.opera.core.systems.OperaDriver
22:42:31.677 INFO - 驱动程序提供商com.opera.core.systems.OperaDriver未注册
[22:42:31]使用gulpfile /opt/app/gulpfile.js
[22:42:31]开始'跑'...
[22:42:31]在1.29毫秒后完成'跑' 开始App。
22:42:31.764 INFO - RemoteWebDriver实例应连接到:http://127.0.0.1:4444/wd/hub
22:42:31.764 INFO - Selenium Server启动并运行
Selenium开始了 2015-08-19T22:42:32.445Z在端口启动app:8000
不工作时的日志完全相同,只是错过了RemoteWebDriver,'Selenium Server启动并运行','Selenium已启动'。线。
答案 0 :(得分:0)
尝试删除容器而不是停止它:
docker stop <container id>
docker rm <container id>