提问者:小点点

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


我发现下面的讨论是:得到一个

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

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

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

映像生成时没有任何错误或警告。但是,当我docker运行时,我现在得到以下错误:

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

该目录包含在我的env path语句中。我还需要找什么?


共1个答案

匿名用户

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

这似乎并不相关,因为您提供的是命令的完整路径。
这仅仅意味着运行容器中不存在完整路径。

为了检查:

  • 删除DockerFile
  • 中的CMD
  • 生成并运行容器
  • 在您的运行容器中打开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" ]