Горячее подключение Docker через usb

Я пытаюсь заставить hotplug работать под Docker внутри nodejs.

Мое тестовое приложение nodejs:

// @ts-ignore
import usb from 'usb';

(async () => {
    usb.on('attach', (device: any) => console.log("attache"));
    usb.on('detach', (device: any) => console.log("detach"));
})();

Мой тестовый контейнер:

sudo docker run --rm -it --entrypoint bash -v /dev:/dev -v /var/run/udev:/var/run/udev -v $(pwd)/workdir:/app --privileged ubuntu:latest

Есть еще несколько пакетов, необходимых для того, чтобы все заработало (на данный момент это скрипт bash, в конце игры должен быть Dockerfile)

#!/bin/bash
apt update && apt-get install -y ca-certificates curl curl build-essential libgphoto2-dev libcups2-dev udev libudev-dev
curl -sL https://deb.nodesource.com/setup_13.x | bash -
apt -y install nodejs
npm i -g ts-node typescript

Чтобы временно все настроить.

В нынешнем виде, если я запускаю udevadm monitor, получаю события и т. д. Но если я запускаю свой тестовый скрипт, никакие события не получаются.

Также, если я запускаю свое тестовое приложение вне докера, все работает как положено.

Кто-нибудь пробовал это раньше?

Спасибо


person Kekec    schedule 25.02.2020    source источник
comment
Я могу заставить его работать, если сеть настроена на хост: sudo docker run --rm -it --entrypoint bash -v /dev:/dev -v /var/run/udev:/var/run/udev -v $(pwd)/workdir:/app --privileged --net=host ubuntu:latest Существует также решение с использованием ionotify: guidodiepen.nl/2016/05/   -  person Kekec    schedule 07.07.2020
comment
Также stackoverflow.com/questions/49687378/   -  person Kekec    schedule 07.07.2020