мышь не движется в Docker с приложением GUI - PullRequest
1 голос
/ 15 марта 2019

В настоящее время я работаю в системе, которая может запускать игру на виртуальной машине и передавать ее клиенту.

Я хочу попробовать сделать то же самое на контейнере Docker. Я знаю, что это не предназначение контейнера, но я хочу провести некоторое исследование по ускорению загрузки игрового сервера.

Я могу запустить игру на сервере Xvfb и транслировать ее с помощью rtsp. Я также могу отправлять входные данные от клиента в Docker-контейнер. Для этого мне нужно было смонтировать / dev / uinput в моем контейнере, так как я создаю ввод в / dev / input и манипулирую им с его устройствами:

docker run --privileged=true -d --rm \
-p 32776:22  -p 5900:5900 -p 4976:4976 \
-p 8553-8600:8553-8600 -p 1663-1680:1663-1680 -p 6971-6973:6971-6973 \
--device=/dev/uinput:/dev/uinput:rwm \
--mount type=bind,source=/dev/input,target=/dev/input,bind-propagation=slave \
--mount type=bind,source=/run/udev,target=/run/udev,bind-propagation=slave \
--name docker_serv bobomb_proper:lavapools

Есть также разные порты, которые мне нужны для потокового видео и ввода.

Например, я могу нажать escape или ZQSD и переместить моего персонажа в мою игру.

Когда я перемещаю устройство мыши, входные данные принимаются на сервере, но сервер Xvfb не перемещает курсор на дисплее.

Есть ли способ сообщить Xvfb-run, какое / dev / событие ему нужно слушать?

Кроме того, мне не удалось создать новые входные данные только для моего контейнера. Единственный способ, которым мне удается распознать ввод с клавиатуры, - добавить --privileged в файл запуска докера, но, похоже, на моем хосте тоже создаются устройства.

Могу ли я создавать устройства / события только для моего контейнера?


Обновление:

https://joshh.info/2016/xserver-inside-docker-container/ Я видел на этом сайте, что они также не могут двигать мышью из-за udev. Но мой run.sh содержит -v / run / udev: / run / udev, и я могу использовать свою клавиатуру в игре, поэтому я не понимаю, почему курсор мыши не двигается.

...