通过Docker运行简单的nodejs时,获取无法找到HelloWorld.js

时间:2017-08-27 12:18:01

标签: node.js docker

我完全跟进了这个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

1 个答案:

答案 0 :(得分:2)

您的问题是-w标志

该标志用于设置容器内的工作目录。因此,您将其设置为在主机中有效的路径,并且容器内没有任何内容。

更改您的docker run语句,如下所示

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

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