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