gpt4 book ai didi

angular - 运行 headless Chromium 浏览器会抛出错误 'Failed to read DnsConfig'(在 Docker 容器内)

转载 作者:行者123 更新时间:2023-12-02 10:27:29 27 4
gpt4 key购买 nike

我的目标:
使用 Karma/Jasmine 在我的 Angular 6 应用程序(在 Docker 容器内运行)上运行单元测试。为了运行这些测试,我似乎需要一个网络浏览器。所以看起来 Chromium headless 是一个不错的选择。我已经通过 Dockerfile 将其与许多其他库一起安装,但是在 Docker 容器内运行测试失败(在容器外部运行测试工作正常)。

错误:

23 02 2019 04:28:08.884:ERROR [launcher]: ChromiumHeadless stdout: 
23 02 2019 04:28:08.884:ERROR [launcher]: ChromiumHeadless stderr: [0223/042808.557529:WARNING:dns_config_service_posix.cc(326)] Failed to read DnsConfig.
[0223/042808.591436:FATAL:udev_loader.cc(38)] Check failed: false.

实际上打开浏览器( http://localhost:9876/ )然后运行测试仍然会导致 headless 失败,但测试会显示在浏览器中。很高兴看到这些测试,但如果我希望这些单元测试最终作为 CI 或其他东西的一部分运行,那就没什么帮助了。

我的猜测是,我实际上可能不需要 DNS 工作(它确实显示来自 stderr 输出的警告),但我不确定如何禁用它。

以下是 Karma 测试运行程序中当前的浏览器配置:

browsers: ['ChromeHeadlessCustom'],
customLaunchers: {
ChromeHeadlessCustom: {
base: 'ChromiumHeadless',
flags: [
'--no-sandbox',
'--allow-insecure-localhost',
'--homepage=about:blank',
'--no-first-run',
'--headless',
'--disable-software-rasterizer',
'--disable-gpu',
'--disable-translate',
'--disable-extensions',
'--disable-setuid-sandbox',
'--remote-debugging-port=9876'
]
}
}

唯一重要的标志是 headlessno-sandbox 标志,这是我在浏览其他帖子时抛出的所有其他内容,但似乎没有任何效果。

Dockerfile(我认为我成功安装了 Chromium):

FROM node:8-alpine

# Install Google Chrome to run Angular unit tests
ENV CHROME_BIN="/usr/bin/chromium-browser"
ENV LIGHTHOUSE_CHROMIUM_PATH /usr/bin/chromium-browser

RUN \
echo "http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories \
&& echo "http://dl-cdn.alpinelinux.org/alpine/edge/main" >> /etc/apk/repositories \
&& echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories \
&& apk --no-cache update \
&& apk --no-cache upgrade \
&& apk add --no-cache --virtual .build-deps gifsicle pngquant optipng libjpeg-turbo-utils udev ttf-opensans chromium
&& rm -rf /var/cache/apk/* /tmp/* /usr/include

因此,如果有人对从这里开始的方向有任何建议,或者如果我错过了运行这些测试的其他一些明显的简单方法,我们将不胜感激!

最佳答案

我也遇到了同样的问题,但未能定位问题。但正如我发现的那样,即时数据包如 this Dockerfile生成工作图像,没有此错误。

这解决了问题,但没有揭示其原因。

关于angular - 运行 headless Chromium 浏览器会抛出错误 'Failed to read DnsConfig'(在 Docker 容器内),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54838341/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com