Dockerfile错误,在运行docker上找不到“<filename>”

我发现以下讨论重新:得到一个

“在$ PATH中找不到可执行文件”

这解决了我的问题,但只是部分。 在我最后的命令我指定:

CMD /home/ubuntu/node-v0.10.16-linux-x64/bin/node launch.js

图像生成没有任何错误或警告。 但是,当我泊坞窗运行<image> ,我现在得到以下错误:

/ bin / sh:1:/home/ubuntu/node-v0.10.16-linux-x64/bin/node:找不到

该目录包含在我的ENV PATH语句中。 我还需要寻找什么?

该目录包含在我的ENV PATH语句中

这似乎并不相关,因为您正在提供命令的完整path。
它应该只是表示在运行容器中不存在完整path。

为了检查:

  • 删除您的Dockerfile中的CMD
  • build立和运行你的容器
  • 在正在运行的容器中打开一个bash(除非默认的docker运行打开一个bash会话)

那是:

 docker exec -it <yourContainer> bash ls /home/ubuntu/node-v0.10.16-linux-x64/bin/node 

要么:

 docker run -it --rm <yourContainer> bash which node 

它应该在/usr/sbin/node
由于/usr/sbin/位于root帐户的$PATH ,因此CMD可以简单地为:

 CMD [ "node", "/path/to/your/launch.js" ]