Не удается развернуть Puppeteer в IBM Cloud

#ibm-cloud #puppeteer

#ibm-облако #кукольник #ibm-cloud #puppeteer

Вопрос:

Я пытаюсь развернуть Puppeteer в IBM Cloud через CF с https://github.com/cloudfoundry/nodejs-buildpack buildpack, но всегда получаю следующую ошибку:

 /chrome-linux/chrome: error while loading shared libraries: libX11-xcb.so.1: cannot open shared object file: No such file or directory
(node:131) UnhandledPromiseRejectionWarning: Error: Failed to launch chrome!
  

Мой манифест.yml выглядит примерно так:

 applications:
- path: .
  domain: eu-gb.cf.appdomain.cloud
  command: npm start
  name: Name
  host: Name
  memory: 128M
  instances: 1
  disk_quota: 1024M
  buildpack: https://github.com/cloudfoundry/nodejs-buildpack
  

Кукловод инициализируется следующим образом:

  const browser = await puppeteer.launch({
    headless: true,
    defaultViewport: null,
    args: ['--no-sandbox', '--disable-setuid-sandbox'],
  });
  

Есть какие-нибудь идеи, как это можно было бы решить?
Спасибо.

Комментарии:

1. Какие команды вы использовали, что представляет собой файл манифеста, каково полное сообщение об ошибке …? Добавьте как можно больше деталей

2. Вы используете puppeteer или puppeteer-core?

3. @data_henrik Я только что поместил файл манифеста. Команда, которую я использую для отправки, такова: cf push «Name» -f manifest.yml

4. @VidyasagarMachupalli Это puppeteer, а не puppeteer-core

5. Приложения Cloud Foundry обычно представляют собой веб-приложения. Я не понимаю, как puppeteer вписывается в систему или как вы превратили его в приложение Cloud Foundry. Предоставьте более подробную информацию

Ответ №1:

Это то, что сработало у меня. Я только что создал node.js приложение с помощью npm init команды, добавил Puppeteer через npm i puppeteer command, добавил index.js с помощью базового образца Puppeteer, а затем последовал двум подходам

Подход 1:

  1. Вот мой manifest.yml файл с заданным buildpack и другими параметрами.
   applications:
    - name: puppeteer-test
      buildpack: https://github.com/cloudfoundry/nodejs-buildpack
      command: npm start
      disk_quota: 1024MB
      memory: 128MB
      instances: 1
  
  1. Кроме того, я запустил npm install локальное создание node_modules. cf push выберет папку node_modules. Убедитесь, что у вас правильные разрешения для папок
  2. Я запустил ibmcloud cf push вместо cf push .

Подход 2

  1. Не определяйте ничего в manifest.yml . Позвольте Cloud foundry выбрать пакет сборки на основе файлов.
   applications:
    - name: puppeteer-test
  
  1. Затем запустите
 ibmcloud cf push
  

Существует третий подход, при котором вы определяете все в .yml файлах, начиная с зависимостей и заканчивая пакетами сборки. Вы можете следовать инструкциям, упомянутым в сообщении здесь

Примечание: Как упоминал Хенрик, вы ничего не увидите при посещении yourappname.bluemix.net URL-адреса, поскольку интерфейс не подключен к node.js приложение.