У меня есть сервер 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
Буду признателен, если кто-нибудь поможет мне решить проблему.