Am incercat mai multe librarii, problema e ca toate sunt bazate pe phantomjs, care aparent nu merge in Docker. Am incercam cam toate variantele posibile pe care le-am gasit.
Folosesc html-pdf package din npm, iar pe local merge perfect, dar in aws ecs primesc asta:
Iti trebuie si Chrome, preferabil pe un server serverless in ECS/Fargate. PhantomJS e deprecated, il poti inlocui cu chromium/chromium headless. Docker Hub
Phantom merge în docker, este nevoie să pui --disable-gpu cum a spus @isti37 mai sus.
Config de mai jos l-am folosit acum câțiva ani (poate s-au schimbat unele flag-uri sau au devenit obsolete). Poate te ajută.
puppeteer.launch({
executablePath: executablePath(),
headless: true,
args: [
"--disable-gpu",
"--disable-dev-shm-usage",
"--disable-setuid-sandbox",
"--no-sandbox",
'--disable-accelerated-2d-canvas',
'--no-first-run',
'--no-zygote',
'--single-process', // <- this one doesn't works in Windows
]
});