В докере произошел сбой nodejs wkhtmltopdf - PullRequest
0 голосов
/ 28 февраля 2019

Вот мой код, использующий wkhtmltopdf в nodejs.PDF можно скачать правильно, посетив localhost:4001/pdf, и приложение не будет аварийно завершать работу.

router.get('/', function(req, res, next) {
    let htmlContent = "<p>whatever</p>";
    wkhtmltopdf(htmlContent, {
        output: 'demo.pdf',
        pageSize: 'A4'
    });

    res.download('demo.pdf'); 
}

, но после того, как я завернул свое приложение в образ докера, PDF все равно можно будет загрузить правильно но приложение упало , что вызвало ошибку: QXcbConnection

Вот файл docker.

FROM node:8
WORKDIR /usr/src/app

RUN apt-get update && apt-get install -y wkhtmltopdf
COPY package*.json ./
RUN npm install

COPY . .
EXPOSE 4001
CMD [ "npm", "start" ]

Вот ошибка

GET /pdf 304 27.978 ms - -
events.js:183
      throw er; // Unhandled 'error' event
      ^

Error: QXcbConnection: Could not connect to display 

wkhtmltopdf exited with code 134
    at handleError (/usr/src/app/node_modules/wkhtmltopdf/index.js:142:16)
    at ChildProcess.<anonymous> (/usr/src/app/node_modules/wkhtmltopdf/index.js:114:7)
    at emitTwo (events.js:126:13)
    at ChildProcess.emit (events.js:214:7)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! pdfdownloader@0.0.0 start: `node ./bin/www`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the pdfdownloader@0.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2019-02-28T05_47_34_845Z-debug.log
...