在Docker容器中运行nodejs serialport
我需要在docker容器中运行nodejs应用程序。我不是Linux的专家,所以我很难理解ho这样做。整个应用程序存储在github(https://github.com/kashesandr/NRTC)。该应用程序使用与node-gyp编译的串口模块(https://github.com/voodootikigod/node-serialport),在我的情况下,串口是使用USB2Serial驱动程序的虚拟驱动程序。 (http://www.prolific.com.tw/US/ShowProduct.aspx?pcid=41) 我想为应用程序创建单独的泊坞窗容器。你可以帮我吗?在Docker容器中运行nodejs serialport
这个问题非常含糊。 在码头中心有一个official image用于构建基于节点的图像。图像自述文件中有很多“如何”信息。唯一棘手的部分似乎是如何从容器内访问串行端口。我相信只有通过以特权模式运行容器才可能,同时确保设备节点也存在于容器内。当然,USB2Serial驱动程序需要安装在主机操作系统上。
我建议旋转起来在交互模式正式节点映像,并尝试安装/手动运行里面你的应用程序,那么你可以计算出根据后来的脚本:
docker run -it --privileged -v /dev:/dev -v path-to-your-app:/usr/src/your-app node:4.4.0 /bin/bash
[email protected]:/# node --version
v4.4.0
[email protected]:/# npm --version
2.14.20
[email protected]:/# gcc --version
gcc (Debian 4.9.2-10) 4.9.2
由于你会发现这会给你一个交互式(-it
)容器内的根访问权限,它拥有你可能需要的所有东西,具有与主机操作系统上相同的/ dev结构(-v /dev:/dev
绑定它),因此访问端口应该没有问题。 (出于安全原因,稍后将-v/dev:/ dev卷绑定到稍后更具体的内容)。如果你需要默认没有安装的其他东西,请通过apt-get(例如apt-get update && apt-get install [package]
)添加它,因为官方节点映像基于Debian Jessie。
当你想出如何运行应用程序(npm install,gyp whatever)后,编写一个Dockerfile应该是微不足道的。
FROM node:4.4.0
RUN npm install ...\
&& steps\
&& to && be && executed && inside && the && image
CMD /your/app/start/script.sh
...和做docker build
,然后用--privileged
在生产环境中运行你的形象,在非交互(不-it
)。
这确实很有意义!谢谢你,需要尝试一下。 – kashesandr
这工作正常!谢谢。 – kashesandr
我很高兴听到!干杯! –