我一直在这个墙上敲我的头一段时间,需要一些帮助。
我有一个Docker文件构建的docker容器。当我尝试运行该容器时(交互式[-i]或分离[-d]),它会产生以下错误:
2014/06/04 21:17:40 exec:“node”:$ PATH中找不到可执行文件
这就是我试图启动容器的方法(出于安全原因而制作通用):
sudo docker run -i -t -p port:port containername:containerversion node /path/to/node/app/nodeapp.js
什么是麻烦和令人困惑的是,当我在没有附加该命令的情况下运行容器时,我能够进入目录/ path / to / node / app并运行:
node nodeapp.js
这对我来说很好。另外,当我比较“which node”命令的内容和“echo $ PATH”的输出时,我发现一切都是犹太教的。所以,为什么这样做会拒绝承认我是它的主人,它应该按照我说的去做?
答案 0 :(得分:5)
nodejs
应该有用。
我不知道为什么,但在我的案例中安装了名为nodejs
而不是node
。
答案 1 :(得分:1)
在Dockerfile中,确保WORKDIR
已设置且CMD
指令如下所示:
CMD ["npm", "start"]
或
CMD ["node", "nodeapp.js"]
答案 2 :(得分:0)
尝试像这样运行:
sudo docker run -i -t -p port:port containername:containerversion /path/to/node/bin/node /path/to/node/app/nodeapp.js
必须可以将它添加到您的路径中,但我不知道如何。但即使你可以,使用上面的完整路径仍然有意义,因为你不会意外地以这种方式运行不同的node
。