#node.js #docker #puppeteer
#node.js #docker #puppeteer
Вопрос:
я пытаюсь сгенерировать PDF-файл с помощью puppeteer, который настраивается внутри docker. однако я продолжаю получать ошибку
Ошибка в pdf ::—> Ошибка: ошибка протокола (страница.навигация): Цель закрыта. в /usr/src/filemanager/node_modules/puppeteer/lib/Connection.js:183:56
const getPdfFile = async (url) => {
let browser = null
let result
try {
browser = await puppeteer.launch({
args: ["--no-sandbox", "--disable-dev-shm-usage"],
headless: true
})
const page = await browser.newPage()
await page.setDefaultNavigationTimeout(0);
await page.goto(url, { waitUntil: 'networkidle2' })
await page.emulateMediaType('screen')
result = await page.pdf(defaultPrintOptions)
} catch (error) {
console.log('Error in pdf ::--->', error)
throw error
} finally {
if (browser !== null) {
await browser.close()
}
}
return result
}
это работает в среде моего локального компьютера с той же настройкой docker, однако сбой при развертывании в облаке.
я не понимаю, какую ошибку я здесь совершаю.
package.json —> «puppeteer»: «^ 2.1.1» контейнер docker ->
nikolaik/python-nodejs:python3.7-nodejs12-stretch
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
amp;amp; sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
amp;amp; apt-get update
amp;amp; apt-get install -y google-chrome-unstable fonts-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst fonts-freefont-ttf libxss1 libxtst6
--no-install-recommends
amp;amp; rm -rf /var/lib/apt/lists/*