Я пытаюсь заставить горячее подключение работать под 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
a get events et c. Но если я запускаю свой тестовый сценарий, никакие события не принимаются.
Также, если я запускаю мое тестовое приложение за пределами docker, все работает как положено.
Кто-нибудь пробовал это раньше?
Спасибо