Docksal - ошибка: не удалось запустить Chrome!использование критического глотка (Penthouse> Puppeteer> Headless Chrome) - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь выполнить критическое задание Адди Османи в контейнере Docksal и получаю ошибки, выходящие за рамки базы знаний.

var config = {
  critical: {
    width: 1280,
    height: 900,
    dest: 'critical-css/',
    urls: {
      '/': 'home',
      '/test-page': 'page',
      '/test-place': 'location'
    }
  }
};

var configLocal = {
  critical: {
    baseDomain: 'http://sitename.docksal/'
  }
};

// Allow requests to work with non-valid SSL certificates.
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";

// gulp.task('critical', ['critical:clean'], function (done) {
gulp.task('critical', function (done) {
  Object.keys(config.critical.urls).map(function(url, index) {
    var pageUrl = urljoin( configLocal.critical.baseDomain, url );
    var destCssPath = path.join(process.cwd(), config.critical.dest, config.critical.urls[url] + '.css' );

    return rp({uri: pageUrl, strictSSL: false}).then(function (body) {
      var htmlString = body
        .replace(/href="\//g, 'href="' + urljoin(configLocal.critical.baseDomain, '/'))
        .replace(/src="\//g, 'src="' + urljoin(configLocal.critical.baseDomain, '/'));

      //gutil.log('Generating critical css', gutil.colors.magenta(destCssPath), 'from', pageUrl);

      critical.generate({
        base: osTmpdir(),
        html: htmlString,
        src: '',
        dest: destCssPath,
        minify: true,
        width: config.critical.width,
        height: config.critical.height
      });

      if (index+1 === Object.keys(config.critical.urls).length) {
        return done();
      }
    });

  });
});

При получении задания я получаю следующую ошибку:

(узел: 1766) UnhandledPromiseRejectionWarning: Ошибка: не удалось запустить Chrome!/var/www/docroot/themes/custom/sitename/node_modules/puppeteer/.local-chromium/linux-594312/chrome-linux/chrome: ошибка при загрузке общих библиотек: libX11-xcb.so.1: невозможно открыть общий объектfile: Нет такого файла или каталога

УСТРАНЕНИЕ НЕИСПРАВНОСТЕЙ: https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md

Эта ссылка говорит о том, что мне нужно добавить в свой файл Docker.Это докерский файл Docksal?Или где-нибудь в проекте?

Запустить Chrome без поддержки и запустить его в Docker может быть сложно.В комплекте Chromium, который устанавливает Puppeteer, отсутствуют необходимые зависимости совместно используемой библиотеки.

Для исправления вам потребуется установить отсутствующие зависимости и последний пакет Chromium в ваш файл Dockerfile ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...