Можно ли запустить xvfb на Heroku?

Я хотел бы запустить xvfb на Heroku. На моем Mac я использовал dmg для его установки. Кто-нибудь знает, как это сделать на Heroku?

Я наткнулся на эти сборки (http://github.com/douglasjsellers/heroku-xvfb-buildpack) - но следование инструкциям, похоже, не решило проблему, так как xvfb по-прежнему не установлен должным образом. Кроме того, я попытался установить xvfbwrapper (https://pypi.python.org/pypi/xvfbwrapper/0.1.0), но он по-прежнему не работает на Heroku (извините за потенциально нубский вопрос).

Вот ошибка, которую я получаю в своих журналах от Heroku:

2015-02-24T02:09:16.035298+00:00 app[web.6]: cmd=['Xvfb', '-help']
2015-02-24T02:09:16.035564+00:00 app[web.6]: Program install error! 
2015-02-24T02:09:16.035302+00:00 app[web.6]: OSError=[Errno 2] No such file or directory

Вот код:

temp = tempfile.mkstemp(suffix='.html')
html = os.fdopen(temp[0], "r+")
html.write(cv)
html.seek(0, 0)

display = Display(visible=0, size=(800, 600))
display.start()

# Open the file on Selenium to load the JavaScript
driver = webdriver.Firefox()
driver.get("file://" + temp[1])

person natab    schedule 24.02.2015    source источник
comment
Я тоже застрял. Вчера я довольно легко заработал на амазонке, но он просто не сдвинется с места на героку.   -  person freeall    schedule 10.12.2015


Ответы (3)


Я нашел этот вопрос, исследуя, как обновить Xvfb для Cedar-14, и мне удалось заставить работать # 2. Итак, вот как:

  1. Я использовал buildpack-apt для установки x11-xkb-utils xvfb x11-xkb-utils xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic libxfont1 xvfb.

  2. После запуска сборочного пакета apt вам нужно немного пропатчить Xvfb, чтобы все работало гладко. Для этого я использовал свой собственный пакет сборки run-bash, но все, что позволяет запустить скрипт bash во время компиляции Heroku будет работать. Вот скрипт, который я использовал для исправления Xvfb и индексации шрифтов: 960cdb96ece01add8686

  3. Теперь вы можете использовать heroku run bash, чтобы проверить с помощью XAUTHORITY=/tmp/xvfb-run.2NG0xl/Xauthority Xvfb ":99" -screen 0 1280x1024x24 -nolisten tcp, что Xvfb работает.

person fxtentacle    schedule 11.12.2015

Да, это возможно, но сложно. Я следил за тем, что делал fxtentacle (в их ответе), но это может быть проще. Эти инструкции обеспечивают минимальную настройку Xvfb; он по-прежнему выводит кучу предупреждений.

Используйте heroku-buildpack-apt для установки пакетов xvfb и libnotify4 debian. Затем используйте этот пакет сборки, чтобы исправить проблему /usr/bin/xkbcomp: https://github.com/captain401/heroku-buildpack-xvfb

Затем вы можете использовать xvfb-run $PROGRAM для запуска вашего приложения.

person yoz    schedule 15.12.2015
comment
Используя приведенную выше инструкцию, я смог запустить xvfb-run. К сожалению, электрон терпит неудачу с: error while loading shared libraries: libnotify.so.4: cannot open shared object file: No such file or directory. Запуск вручную через bash не дал никаких ошибок. libnotify4 установлена -- под /app/.apt. Интересно, почему процесс node не получил LD_LIBRARY_PATH env var. - person neofreko; 13.02.2016
comment
Ах, это изменилось где-то за последний месяц — вы установили libnotify4 через Aptfile для heroku-buildpack-apt? Мне тоже пришлось его добавить (помимо xvfb). Вы можете проверить свой LD_LIBRARY_PATH, запустив heroku run bash, чтобы получить оболочку. - person yoz; 14.02.2016
comment
Да, я установил через Aptfile. Вызов электрона с xvfb-run на bash не вызвал у меня никаких проблем. Однако выполнение этого через процесс nodejs никогда не работало для меня :(. Я даже пытался установить LD_LIBRARY_PATH из конфигурации Heroku, но безуспешно - это снова проблема libnotify4. - person neofreko; 20.02.2016
comment
У Electron есть и другие проблемы — они исправлены в самом последнем выпуске: ошибки. .chromium.org/p/chromium/issues/detail?id=522853 - person yoz; 23.02.2016

Мне интересно то же самое. Похоже, вы уже нашли этого парня. проблема. Всем упомянутым пакетам сборки более 1 года, и они больше не работают.

Два жизнеспособных кажущихся варианта:

  1. Скомпилируйте автономный двоичный файл xvfb а-ля https://github.com/kenshin23/xvfb-portable-binary, который работает на текущей ОС и архитектуре Heroku, перестраивается при обновлении.

  2. Установите все зависимости из диспетчера пакетов apt в какое-нибудь место, например ~/.apt, и запустите оттуда, как в последнем buildpack-apt. Для меня этот вариант умирает с sh: 1: /usr/bin/xkbcomp: not found. Xvfb ищет в /, а apt установил команду в ~/.apt/usr/bin/xkbcomp. Не понял, как сказать Xvfb искать в ~/.apt/.

person hurrymaplelad    schedule 24.02.2015