Кукловод не работает так же, как на локальном и прод - PullRequest
0 голосов
/ 07 октября 2019
let templateHtml = fs.readFileSync(
    path.join(process.cwd(), '../signedDocs/template.html'),
    'utf8'
);
// making a compilable out of the HTML file
let template = handlebars.compile(templateHtml);
console.log('creafte pdf 1');
// passing the data to the HTML
let html = template(dataPDF);

// constructing the path where the generated PF file will be stored
let pdfPath = path.join(process.cwd(), '../signedDocs/' + userID + '.pdf');
console.log('creafte pdf 2');
// PDF configuration
let options = {
    width: '1230px',
    headerTemplate: '<p></p>',
    footerTemplate: '<p></p>',
    displayHeaderFooter: false,
    printBackground: true,
    pageRanges: '1-6',
    format: 'A4',
    preferCSSPageSize: true,
    margin: {
        top: '10px',
        right: '20px',
        bottom: '60px',
        left: '20px'
    },
    path: pdfPath
};

console.log('creafte pdf 3.1');
// starting the browser with Puppeteer
const browser = await puppeteer.launch({
    args: ['--no-sandbox', '--disable-setuid-sandbox'],
    headless: true
});
console.log('creafte pdf 3.2');
// starting a new blank page
let page = await browser.newPage();

try {
    await page.goto(`data:text/html;charset=UTF-8,${html}`, {
        waitUntil: 'networkidle0' //command used so the page w/ modules waited to be loaded
    });
} catch (err) {
    console.log(err);
}
console.log('creafte pdf 4');
try {
    await page.pdf(options); // to generate the PDF
} catch (err) {
    console.log('errrr   on  page.pdf');
    console.log(err);
}

console.log('done');
await followUpEmail(user);
console.log('email sent');
await browser.close(); // for closing the browser

Приведенный выше код прекрасно работает на моем локальном хосте. (Запуск node.js 10)

Однако теперь я развернул свой API на экземпляре EC2, и он работает до тех пор, пока:

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

Я не получу 3.1 console.log, но потом ничего.

Я начинаю чувствовать, что это что-то странное с моим изданием. Однако сегодня, попробовав все виды различных подходов, я немного растерялся.

Теперь я действительно надеюсь, что кто-то здесь столкнулся с этой проблемой и имеет ответ или направление!

1 Ответ

0 голосов
/ 10 октября 2019

Так что оказалось, что NPM действительно устанавливает версию Chrome, однако в ней отсутствует множество зависимостей.

Я проверил, какие зависимости отсутствовали, используя:

ldd chrome | grep not

Установил несколько вручную, но некоторые не на ПКМ

Затем я создал конфигурацию YUM дляустанови хром, установи его и что пришло с отсутствующими зависимостями.

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