使用node.js应用程序启动docker容器会产生错误;抱怨PATH

时间:2014-06-04 21:35:34

标签: node.js docker

我一直在这个墙上敲我的头一段时间,需要一些帮助。

我有一个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”的输出时,我发现一切都是犹太教的。所以,为什么这样做会拒绝承认我是它的主人,它应该按照我说的去做?

3 个答案:

答案 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