Jsreport: запуск хрома в докерфайле - PullRequest
0 голосов
/ 14 ноября 2018

Я пытаюсь запустить dockerfile, который должен обслуживать мой chrome-pdf, сгенерированный jsreport 2.2.0.Это dockerfile:

FROM node:carbon
ADD . /usr/src/js-report-home
WORKDIR /usr/src/js-report-home

RUN apt-get update && apt-get install -yq libgconf-2-4

RUN apt-get update && apt-get install -y wget --no-install-recommends \
&& wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \
&& sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' \
&& apt-get update \
&& apt-get install -y google-chrome-unstable fonts-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst ttf-freefont \
  --no-install-recommends \
&& rm -rf /var/lib/apt/lists/* \
&& apt-get purge --auto-remove -y curl \
&& rm -rf /src/*.deb


ADD https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64 /usr/local/bin/dumb-init
RUN chmod +x /usr/local/bin/dumb-init

ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true

RUN npm i puppeteer

EXPOSE 5488
RUN npm install
CMD [ "npm", "start" ]

сейчас выполняется jsreport, я получаю следующую ошибку:

Error: Chromium revision is not downloaded. Run "npm install" or "yarn install"
at Launcher.launch (/usr/src/js-report-home/node_modules/puppeteer/lib/Launcher.js:115:15)
at <anonymous>

Ошибка говорит мне запустить npm install, что я делаю во второй последней строкеdockerfile.Также я проверил на хром, и он фактически установлен в: puppeteer> .local-chromium> win64-579032> chrome-win32

Любая помощь?

РЕДАКТИРОВАТЬ: я также добавил расширение к моейjsreport config.json, поэтому он запускает хром без песочницы.

{
  "shortid": "BkvRaEZLQ",
  "name": "1_Factsheet Light",
  "recipe": "chrome-pdf",
  "engine": "handlebars",
  "chrome": {
    "printBackground": true
  },
  "modificationDate": {
    "$$date": 1542121945921
  },
  "_id": "eSKSxylsIUdoPT6Z",
  "$entitySet": "templates",
  "htmlToXlsx": {
    "htmlEngine": "chrome"
  },
  "phantom": {
    "waitForJS": true,
    "fitToPage": false
  },
  "data": {
    "shortid": "rkuN61P67"
  },
  "extensions": {
   "chrome-pdf": {
    "launchOptions": {
      "args": ["--no-sandbox"]
    }
   }
  }
}

1 Ответ

0 голосов
/ 16 ноября 2018

Вам необходимо настроить jsreport / puppeteer для использования двоичного файла, который вы явно загрузили с помощью apt-get install -y google-chrome-unstable.Это делается через

ENV chrome:launchOptions:executablePath google-chrome-unstable

Я рекомендую взглянуть на официальные изображения jsreport.Вы найдете это там.https://hub.docker.com/r/jsreport/jsreport/

Докер-файлы можно найти в репозитории jsreport

...