#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:
- Вот мой
manifest.yml
файл с заданным buildpack и другими параметрами.
applications:
- name: puppeteer-test
buildpack: https://github.com/cloudfoundry/nodejs-buildpack
command: npm start
disk_quota: 1024MB
memory: 128MB
instances: 1
- Кроме того, я запустил
npm install
локальное создание node_modules.cf push
выберет папку node_modules. Убедитесь, что у вас правильные разрешения для папок - Я запустил
ibmcloud cf push
вместоcf push
.
Подход 2
- Не определяйте ничего в
manifest.yml
. Позвольте Cloud foundry выбрать пакет сборки на основе файлов.
applications:
- name: puppeteer-test
- Затем запустите
ibmcloud cf push
Существует третий подход, при котором вы определяете все в .yml
файлах, начиная с зависимостей и заканчивая пакетами сборки. Вы можете следовать инструкциям, упомянутым в сообщении здесь
Примечание: Как упоминал Хенрик, вы ничего не увидите при посещении yourappname.bluemix.net
URL-адреса, поскольку интерфейс не подключен к node.js приложение.