通过Docker运行简单的nodejs时,无法findHelloWorld.js

我完全从这个chpater跟随教程: https ://www.tutorialspoint.com/docker/docker_setting_nodejs.htm

所有玩法都很好,但是在尝试执行时遇到错误:

sudo docker run -it --rm --name HellowWorld -v "$PWD":/usr/src/app -w /home/will/Documents/DockerTests/NodeTest node node HelloWorld.js 

我得到了我的HelloWorld.js在运行此命令的文件夹下。 例外是:

 module.js:491 throw err; ^ Error: Cannot find module '/home/will/Documents/DockerTests/NodeTest/HelloWorld.js' at Function.Module._resolveFilename (module.js:489:15) at Function.Module._load (module.js:439:25) at Function.Module.runMain (module.js:609:10) at startup (bootstrap_node.js:158:16) at bootstrap_node.js:598:3 will@will-virtual-machine:~/Documents/DockerTests/NodeTest$ 

感谢您的审查..

更新:我试着运行一个不同的命令:

 sudo docker run -it --rm --name HellowWorld -v "$PWD":/usr/src/app -w /usr/src/app node node HelloWorld.js 

例外显示:

 module.js:491 throw err; ^Error: Cannot find module '/usr/src/app/HelloWorld.js' at Function.Module._resolveFilename (module.js:489:15) at Function.Module._load (module.js:439:25) at Function.Module.runMain (module.js:609:10) at startup (bootstrap_node.js:158:16) at bootstrap_node.js:598:3 

HelloWorld.js的内容: console.log('Hellow World');

命令ls -alh显示:

total 12K drwxrwxr-x 2 will will 4.0K 8月 27 20:38 . drwxrwxr-x 9 will will 4.0K 8月 27 19:55 .. -rw-rw-r-- 1 will will 29 8月 27 19:52 HellowWorld.js

你的问题是-w标志

该标志用于设置容器内的工作目录。 所以你要把它设置成一个在主机上有效的path,并且在容器内没有任何东西。

更改你的docker运行语句如下

 sudo docker run -it --rm --name HellowWorld -v "$PWD":/usr/src/app -w /usr/src/app node node HelloWorld.js 

还要确保HelloWorld.js存在于当前目录中