trion/ng-cli-karma用于在Docker内部使用Xvfb运行Angular CLI的Karma测试的容器。
此镜像由[***]
docker run -u $(id -u) --rm -v "$PWD":/app trion/ng-cli-karma ng new MyDemo cd MyDemo docker run -u $(id -u) --rm -v "$PWD":/app trion/ng-cli-karma ng serve -host 0.0.0.0 docker run -u $(id -u) --rm -v "$PWD":/app trion/ng-cli-karma ng build
如果需要克隆其他Git仓库(例如从package.json中指定的),且运行用户的UID不是1000,则需要挂载passwd文件,因为Git需要解析UID:
docker run -u $(id -u) --rm -p 4200:4200 -v /etc/passwd:/etc/passwd -v "$PWD":/app trion/ng-cli npm install
docker run -u $(id -u) --rm -v "$PWD":/app trion/ng-cli-karma ng test
docker run -u $(id -u) --rm -v "$PWD":/app trion/ng-cli-karma ng test --watch false --single-run true
WebGL通过Mesa软件渲染支持,但由于速度较慢,默认未启用。
要使用WebGL配置,需使用xvfb-chromium-webgl替代常规的chromium包装器(名为chrome或chromium)。该包装器已启用额外开关--enable-webgl --ignore-gpu-blacklist,这是软件WebGL渲染所必需的。
可在karma配置中进行设置,例如:
browsers: ['/usr/bin/xvfb-chromium-webgl'],
或通过CHROME_BIN环境变量指定Chrome可执行文件:
docker run -e CHROME_BIN=/usr/bin/xvfb-chromium-webgl -u $(id -u) --rm -v "$PWD":/app trion/ng-cli-karma ng test --single-run
除了在隐藏的Xvfb上运行外,还可在真实显示器上运行提供的Chrome。需导出显示器、绑定/tmp套接字,并通过CHROME_BIN环境变量选择display-chromium启动包装器:
docker run -e DISPLAY=:0 -e CHROME_BIN=/usr/bin/display-chromium -u $(id -u) --rm -v /tmp:/tmp -v "$PWD":/app trion/ng-cli-karma ng test
如果忘记暴露/tmp/.X*套接字,会出现如下错误:
ERROR:nacl_helper_linux.cc(310)] NaCl helper process running without a sandbox!
Mozilla Firefox和Google Chrome正在开发支持集成测试的无头浏览器。
目前Chrome的WebGL需要Mesa软件渲染,但未来将切换到swift渲染(参见[***]
Mozilla仍在Firefox中开发无头支持(参见[***]
通过上述交互式调试模式运行测试,并检查浏览器控制台。
若出现类似Failed to load resource: net::ERR_INSUFFICIENT_RESOURCES(资源加载失败:网络错误:资源不足)或An error was thrown in afterAll Error: Can't find ./some-file.ts (required by other-file.ts) at require(afterAll中抛出错误:找不到./some-file.ts(被other-file.ts依赖))的错误,可能是浏览器共享内存不足。可尝试通过Docker参数--shm-size 1G增加共享内存,或为Chromium/Chrome指定--disable-dev-shm-usage标志禁用共享内存使用。





manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务