![](/img/trans.png)
[英]Docker Express Node.js app container not connecting with MongoDB container giving error TransientTransactionError
[英]Starting a docker container with a node.js app produces error; complains about PATH
我已经将头撞在墙上的墙上已经有一段时间了,需要一点帮助。
我有一个从Dockerfile构建的Docker容器。 当我尝试运行该容器(交互式[-i]或分离的[-d])时,它会产生以下错误:
2014/06/04 21:17:40 exec:“节点”:在$ PATH中找不到可执行文件
这就是我尝试启动容器的方式(出于安全原因将其设为通用):
sudo docker run -i -t -p port:端口containername:containerversion节点/path/to/node/app/nodeapp.js
麻烦和令人困惑的是,当我在未附加该命令的情况下运行容器时,我能够将CD插入目录/ path / to / node / app并运行:
节点nodeapp.js
这对我来说很好。 另外,当我比较“哪个节点”命令的内容和“ echo $ PATH”的输出时,我发现一切都是洁的。 那么,为什么这真的拒绝承认我是它的主人,而应该按照我说的做呢?
nodejs
应该可以工作。
我不知道为什么,但是在我的情况下,它安装了名为nodejs
node
。
在Dockerfile中,确保已设置WORKDIR
,并且CMD
指令如下所示之一:
CMD ["npm", "start"]
或
CMD ["node", "nodeapp.js"]
尝试像这样运行它:
sudo docker run -i -t -p port:port containername:containerversion /path/to/node/bin/node /path/to/node/app/nodeapp.js
必须将其添加到您的路径中,但是我不知道如何。 但是即使可以,使用上面的完整路径仍然有意义,因为您不会意外地以这种方式运行其他node
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.