【问题标题】:ChromeHeadless not getting started in docker imageChromeHeadless 没有在 docker 镜像中开始
【发布时间】:2021-09-23 04:27:22
【问题描述】:

我有一个 Angular 11 项目。 ng 测试在本地成功运行,但在 docker 容器内,我收到以下错误

Launching browsers ChromeHeadless with concurrency unlimited
14 07 2021 07:20:44.772:INFO [launcher]: Starting browser ChromeHeadless
14 07 2021 07:20:44.800:ERROR [launcher]: Cannot start ChromeHeadless
  Can not find the binary /iot-config-tool/node_modules/puppeteer/.local-chromium/linux-884014/chrome-linux/chrome
  Please set env variable CHROME_BIN
14 07 2021 07:20:44.800:ERROR [launcher]: ChromeHeadless stdout: 
14 07 2021 07:20:44.800:ERROR [launcher]: ChromeHeadless stderr: 
npm ERR! Test failed.  See above for more details.

我正在使用 node:14.17-alpine 图像。我也尝试使用此命令apk update && apk add --no-cache chromium 安装 chromium,但遇到相同的错误。

这里是 karma.config.js

提前谢谢你

process.env.CHROME_BIN = require('puppeteer').executablePath();   
    module.exports = function(config) {
      config.set({
        webpack: { node: { fs: 'empty' } },
        basePath: '',
        frameworks: ['jasmine', '@angular-devkit/build-angular'],
        browsers: ['ChromeHeadless'],
        plugins: [
          require('karma-jasmine'),
          require('karma-chrome-launcher'),
          require('karma-jasmine-html-reporter'),
          require('karma-coverage-istanbul-reporter'),
          require('@angular-devkit/build-angular/plugins/karma'),
        ],
        client: {
          clearContext: false, // leave Jasmine Spec Runner output visible in browser
        },
    
        mime: {
          'text/x-typescript': ['ts', 'tsx'],
        },
        coverageIstanbulReporter: {
          reports: ['html', 'lcovonly'],
          fixWebpackSourcePaths: true,
        },
        angularCli: {
          environment: 'dev',
        },
        reporters:
          config.angularCli && config.angularCli.codeCoverage
            ? ['progress', 'coverage-istanbul']
            : ['progress', 'kjhtml'],
        port: 9876,
        colors: true,
        logLevel: config.LOG_INFO,
        autoWatch: true,
        singleRun: false,
      });
    };

【问题讨论】:

  • 能否请您也添加您的 docker yml?
  • 我正在用这个命令测试它 docker run -v pwd:/iot-config-tool -it node:14.17-alpine /bin/sh

标签: angular docker google-chrome-headless


【解决方案1】:

您想在节点文件夹的 puppeteer 中执行 chrome 所以如果你的系统是 32 位的,你就不能启动 你应该添加

RUN apk add chromium
RUN apk add chromium-chromedriver
ENV CHROME_BIN=/usr/bin/chromium-browser 

并删除process.env.CHROME_BIN = require('puppeteer').executablePath();
这将工作!

【讨论】:

    猜你喜欢
    • 2023-03-30
    • 1970-01-01
    • 2020-09-22
    • 1970-01-01
    • 2018-08-23
    • 2016-05-26
    • 2022-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多