Как включить xvfb для сервера express, работающего внутри контейнера docker? - PullRequest
0 голосов
/ 03 августа 2020

У меня есть сервер express внутри контейнера docker. Как только пользователь выполняет REST-вызов конечной точки, он должен сделать несколько скриншотов в памяти случайно сгенерированного me sh под разными углами с помощью Babylon. js, обработать его изображения, создать из него PDF и верните сгенерированный файл PDF пользователю.

Для этого я пытаюсь использовать headless-gl , чтобы обеспечить виртуальный буфер кадра для Babylon. js engine.

Насколько я понял, мне сначала нужно получить контекст gl, а затем передать его движку babylon:

var gl = require(‘gl’)(1024, 768, { preserveDrawingBuffer: true });

var engine = new BABYLON.Engine(gl, true, { disableWebGL2Support: true });

Моя проблема в том, что я не могу инициализировать gl, и он возвращает null .

Внутри моего Dockerfile я использую следующее, чтобы установить зависимости для xvfb :

RUN apt-get update && apt-get install -y
libgl1-mesa-dri
libglapi-mesa
libosmesa6
mesa-utils
xvfb
&& apt-get clean

Мой сервер зависит от mon go DB также внутри моего файла docker -compose.yml, я жду, пока контейнер DB будет инициализирован, прежде чем загружать свой express контейнер:

command: wait-for.sh mongodb:27017 – …/node_modules/.bin/nodemon --inspect=0.0.0.0:9229 ./server.js

Думаю, мне нужно обновить Dockerfile и docker - составьте файлы с соответствующими командами для загрузки * 1 022 * xvfb перед запуском приложения узла, но я не уверен, как это сделать.

Я пробовал следующее вместе с некоторыми другими комбинациями, но пока безуспешно:

command: wait-for.sh mongodb:27017 – xvfb-run -s “-ac -screen 0 1280x1024x24” node ./server.js

Буду признателен, если кто-нибудь поможет мне решить проблему.

...