我最近将我的node.js应用程序移动到了docker镜像中,我想在图像中运行我的测试 . 我的mocha / node测试工作正常,但Karma测试涉及启动Chrome以运行测试,而Chrome未安装在容器中 .
我该如何解决这个问题?
-
在容器中安装Chrome?似乎不太理想,因为我不想将Chrome发送到容器内的 生产环境 服务器 .
-
以某种方式允许它连接到主机上的Chrome?
-
创建一个继承自我的应用图片并添加Chrome和其他内容的新图片?
谷歌搜索“码头和业力”揭示了码头图像,但我找不到如何思考问题和最佳方法的说明 .
3 回答
我发现这个docker图像是在Concourse CI上的docker容器内快速运行karma测试的一个很好的起点:
https://hub.docker.com/r/markadams/chromium-xvfb-js/
它包含节点6.x(最新)npm和使用X虚拟帧缓冲的无头铬实例 . 对我有用!
确实是个好问题 . 我惊讶地发现似乎没有直接的答案 . 我在管道中执行测试时最终运行了一个安装脚本 . 该脚本执行所有必要的操作,如下载chrome和配置Xvfb .
使用PhantomJS而不是Chrome . Karma有PhantomJS launcher .
PhantomJS基于Blink .
安装PhantomJS:
添加到Karma配置:
EDIT
这是部分内容
Dockerfile
在这种情况下,Docker制作了一层 . 在这一层
安装库和工具(debian jessie)
安装PhantomJS
安装NodeJS
运行测试
删除库和工具
删除NodeJS
删除PhantomJS
测试正在运行,您在 生产环境 容器中没有PhantomJS .