Я застрял при отладке упаковки пользовательского Xvfb, созданного с помощью headless-gl (Three JS и WebGL) для AWS Lambda. Возможно, мне не хватает некоторых сложностей установки драйверов или просто необходимой библиотеки, и я не могу получить полезные журналы.
Я пытаюсь запустить узел с ThreeJS / WebGL в автономной среде. Цель этого - упаковать все это в AWS лямбда-функцию. В настоящее время я тестирую в Docker с чистым образом lambci / lambda: build-nodejs12.x (который должен напоминать amazon linux 2), и все работает в чистой среде, в которой двоичные файлы совместно используются в /var/task/bin
и /var/task/lib
, если я запускаю :
yum install -y mesa-dri-drivers
до запуска:
xvfb-run --server-args "-ac -screen 0, 1024x1024x24" node_modules/.bin/coffee myscript.coffee -i ./test.png -o ./out.png
Я построил Xvfb, аналогично https://github.com/nisaacson/aws-lambda-xvfb (еще несколько шагов из-за отсутствующих зависимостей и более поздних версий всего), и я знаю, что мой кофейный скрипт запускается через узел и все работает. Однако, без установки драйверов mesa, все начинается с go неправильно. Я попытался упаковать их в lib через yumdownloader
, поделившись ими со средой, выполнив следующие инструкции: https://aws.amazon.com/premiumsupport/knowledge-center/lambda-linux-binary-package/ и здесь: { ссылка } и добавил каталог со скопированным общие двоичные файлы перед существующим LD_LIBRARY_PATH
.
Несмотря на всю эту упаковку, я получаю сообщение об ошибке (с помощью команды xvfb-run):
THREE.WebGLRenderer: TypeError: _canvas.getContext is not a function
events.js:200
throw er; // Unhandled 'error' event
^
TypeError: Cannot read property 'getExtension' of undefined
Это восходит к моему сценарий кофе:
gl = require('gl')(width, height)
где gl
равно null
в нерабочем случае. Я думаю, что это просто означает, что не может быть создан контекст WebGL. Чего мне не хватает, так это почему. Я предполагаю, что библиотека отсутствует, но я не знаю, как узнать, какая.
При работе с:
xvfb-run -e myLog.txt …
Я не получаю ничего полезного, Xvfb, кажется, начните нормально, нет записей, которые я не получаю в рабочем сценарии.
Вопросы:
- Нужно ли что-то делать по-другому при упаковке установки драйвера ?
- Есть ли способ просмотреть дополнительную информацию журнала из Xvfb?
Обновление:
Установка glxinfo и запуск:
xvfb-run -s "-screen 0 640x480x24" glxinfo
Приводит к:
name of display: :99
Error: couldn't find RGB GLX visual or fbconfig
Пока он работает в системе с установленными через yum драйверами mesa. Все, что я мог найти в Интернете, это то, что сообщение выше указывает на проблему с драйверами, но я не вижу, как это исправить. Я попытался запустить strace
и inotifywait
, чтобы увидеть, какие библиотеки доступны в рабочем / нерабочем случае, он показал мне пару, которая могла отсутствовать, но копирование их не помогло.