我正在尝试在 Docker 容器上运行 Google Chrome。
这个docker容器是基于microsoft/windowsservercore:ltsc2016
。我想使用 docker 容器构建 AngularCLI 应用程序。因此,我需要在 Google Chrome 中运行我的测试(带有: – 无头标志)。
使用 Chrome 运行测试对我来说是一个新功能,因为我的 Angular-Apps 不是基于 Angular CLI 结构,并且测试是使用 PhantomJS 执行的。
我已经更新了整个 Angular 项目以适应 AngularCLI 结构,因为我希望它们基于标准 Angular 方式。所以我尝试使用 Chrome 而不是 PhantomJS。
此外,我正在使用 Chocolatey 来安装软件包。
这是我的缩小版 dockerfile:
FROM microsoft/windowsservercore:ltsc2016
RUN choco install -y googlechrome && \
choco install -y nodejs --version 8.11.3
# npm konfiguration um den dvelop-npm ProGet feed nutzen zu können
RUN npm install -g @angular/cli
我可以使用完整的 dockerfile 构建 AngularApp,但我的测试不起作用。启动Chrome时出现错误,提示在chrome.dll中找不到Chrome的某个模块。
完整错误:
Project name: dapi-provider
22 10 2018 11:16:09.393:INFO [karma]: Karma v3.0.0 server started at http://0.0.0.0:9876/
22 10 2018 11:16:09.396:INFO [launcher]: Launching browser ChromeHeadlessNoSandbox with unlimited concurrency
22 10 2018 11:16:09.410:INFO [launcher]: Starting browser Chrome
22 10 2018 11:16:10.238:ERROR [launcher]: Cannot start Chrome
[1022/111609.595:ERROR:main_dll_loader_win.cc(134)] Failed to load Chrome DLL from C:\Program Files (x86)\Google\Chrome\Application\70.0.3538.67\chrome.dll: The specified module could not be found. (0x7E)
我知道这是一个迟到的回应 - 但几周前我自己也遇到了同样的情况。
事实证明 - 问题出在字体上。是的,去算一下哈哈。
ServerCore 仅包含一种字体,而不是 google chrome 渲染 UI 所需的字体。
我在这里为您整理了所需的字体,并展示了如何在 Windows 容器中提取和安装:https://github.com/prom3theu5/ServerCoreFonts https://github.com/prom3theu5/ServerCoreFonts
所需字体:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)