Docker容器源代码安装在Ubuntu中失败

时间:2016-07-26 04:35:23

标签: node.js docker

当我尝试构建并将本地源代码连接到Container时,我遇到了一个问题。如果你能提出建议,我将不胜感激。

这是我的每个附加屏幕截图的Docker文件。

我想要做的基本上是,我想创建一个NodeJs容器并将我的本地nodejs源代码连接到Container中。好像我的本地源代码文件夹没有安装到Volume中,

另外,值得一提的是这里。我看到一些博客,它说将版本降级到Docker版本为1.6将解决此问题。这是正确的吗?

请将附带的Dockerfile视为图像。

请帮忙,我们将不胜感激。

谢谢。

Dockerfile error_message

1 个答案:

答案 0 :(得分:0)

问:为什么我的应用程序在docker容器中失败并显示错误Cannot find module 'express'

A:正如评论中所强调的那样 - 这是由于OP启动其容器的方式。顺便提一下,OP已将他当前的工作目录(即他的NodeJS应用程序的结帐)映射到容器的/var/www目录中,在该目录中,他在构建映像期间执行了npm install。这会导致当前工作目录中的文件覆盖之前构建的图像,因为OP在当前工作目录中没有完成npm install,因此{{1}失败了没有安装依赖项。

问:您能否向我提供解决方案,如何将我的本地资源安装到容器中

A:据我所知,我们的评论。你已经这样做了。 express二进制文件中的-v选项允许您将主机的文件系统挂载到容器中。

我不确定你的实际用例是什么。如果您希望容器使用其docker进程从您的计算机(主机)的文件系统运行代码,那么您的原始命令Node应该完成这项工作。您只需在当前工作目录上运行docker run -d -p 80:80 -v $(pwd):/var/www ...即可。因为无论您在主机上执行什么操作,文件更改都会反映到容器的npm install目录中。