У меня есть контейнер docker, который использует плагин gstreamer для захвата ввода камеры. Он отлично работает с камерой Bastler, но теперь мне нужно использовать камеру IDS uEye. Чтобы использовать эту камеру, мне нужно запустить службу ueyeusbdr c. В документации IDS сказано, что для запуска я могу запустить sudo systemctl start ueyeusbdrc
или sudo /etc/init.d/ueyeusbdrc start
. Проблема заключается в том, что при запуске контейнера docker эта служба не работает, и я получаю ошибку Failed to initialize camera , что является той же ошибкой, которую я получаю, если запускаю gst-launch-1.0 -v idsueyesrc ! videoconvert ! autovideosink
и ueyeusbdr * Служба 1023 * не работает вне контейнера в моем P C. Это говорит о том, что проблема в том, что служба ueyeusbdr c не работает внутри контейнера.
Как я могу запустить ueyeusbdr c внутри контейнера docker? Я попытался запустить /etc/init.d/ueyeusbdrc start
в сценарии. sh, который запускает приложение (которое вызывается с помощью ENTRYPOINT ["<.sh file>"]
в Dockerfile), но не удается. Также, если я пытаюсь использовать sudo, это говорит мне, что команда не существует. Если я запускаю systemctl, он также говорит мне, что команда не существует. Кстати, я запускаю docker с privileged: true
(по крайней мере, это то, что установлено в файле docker -compose.yml).
Я использую Ubuntu 18.04.
Обновление: я сопоставил / run / ueyed и / var / run / ueyed с контейнером, и это изменило ошибку с Не удалось инициализировать камеру на Не удалось инициализировать захват видео . Возможно, я могу запустить демон на хосте, и есть способ подключить его к контейнеру. Любые предложения о том, как это сделать?