![](/img/trans.png)
[英]firebase authentication error nodejs app in docker container running in docker swarm
[英]Running nodejs serialport in a docker container
我需要在 docker 容器中運行 nodejs 應用程序。 我不是 Linux 專家,所以我很難理解如何做到這一點。 整個應用程序存儲在 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 容器。 請你幫助我好嗎?
這個問題很模糊。 docker hub 有一個官方鏡像,用於構建基於節點的鏡像。 圖像的自述文件中有很多“操作方法”信息。 在我看來,唯一棘手的部分是如何從容器內訪問串行端口。 我相信只有在特權模式下運行容器才能實現,同時確保設備節點也存在於容器內。 當然USB2Serial驅動需要安裝在主機操作系統上。
我建議在交互模式下啟動官方節點映像,並嘗試在其中手動安裝/運行您的應用程序,然后您可以根據它找出一個腳本:
docker run -it --privileged -v /dev:/dev -v path-to-your-app:/usr/src/your-app node:4.4.0 /bin/bash
root@3dd71f11f02f:/# node --version
v4.4.0
root@3dd71f11f02f:/# npm --version
2.14.20
root@3dd71f11f02f:/# gcc --version
gcc (Debian 4.9.2-10) 4.9.2
如您所見,這將為您提供容器內的交互式( -it
)root 訪問權限,其中包含您可能需要的一切,並具有與主機操作系統相同的 /dev 結構( -v /dev:/dev
綁定它),因此訪問端口應該沒有問題。 (出於安全原因,稍后將 -v /dev:/dev 卷綁定細化為更具體的內容)。 如果您需要默認情況下未安裝的所有其他內容,請通過 apt-get 添加(例如apt-get update && apt-get install [package]
),因為官方節點映像基於 Debian Jessie。
在您弄清楚如何運行應用程序(npm install、gyp 等等)之后,編寫 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
在生產中)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.