I have a problem when create pdf using html-pdf. In my local running well but in server can't work. my code below:
const fileName = './public/offering/' + dayjs().format('YYYY-MM-DD') + '-' + name[0] + '.pdf';
const htmlToPdfOptions = {
type: 'PDF',
height: '1200px',
width: '816px',
renderDelay: 2000,
format: 'Letter',
phantomPath: require('requireg')('phantomjs-prebuilt').path,
};
pdf.create(file, htmlToPdfOptions).toFile(fileName, async function (err: any, result: any) {
if (err) return console.log(err, 'xxxxxxxxxxxxxx this error');
console.log(result)
});
in my docker like this
FROM node:14-alpine
RUN npm install --global pm2
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY . .
COPY package*.json ./
COPY . .
RUN npm install && npm run build
RUN npm install -g phantomjs --unsafe-perm
COPY . .
EXPOSE 8500
CMD ["pm2-runtime", "start", "src/index.js"]
Error in server is
Error: spawn /usr/src/app/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs ENOENT
at Process.ChildProcess._handle.onexit (internal/child_process.js:269:19)
at onErrorNT (internal/child_process.js:467:16)
at processTicksAndRejections (internal/process/task_queues.js:82:21) {
errno: -2,
code: 'ENOENT',
syscall: 'spawn /usr/src/app/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs',
path: '/usr/src/app/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs',
spawnargs: [
'--local-url-access=false',
'/usr/src/app/node_modules/html-pdf/lib/scripts/pdf_a4_portrait.js'
]
}
Can anyone help me? because I have already tried some solutions on the web but nothing works or anyone can give me reference?. example: Nodejs + PhantomJS in Docker: Error: spawn - ENOENT