我正在尝试使热插拔在nodejs内的Docker下工作。
我的nodejs测试应用程序:
// @ts-ignore
import usb from 'usb';
(async () => {
usb.on('attach', (device: any) => console.log("attache"));
usb.on('detach', (device: any) => console.log("detach"));
})();
我的testbad容器:
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
时会发生get事件等。但是,如果我运行测试脚本,则不会发生任何事件。
另外,如果我在docker外部运行测试应用程序,一切都会按预期进行。
以前有人尝试过吗?
谢谢