在Docker容器中安装node_modules并将它们与host同步
我遇到了在Docker容器中安装node_modules并将它们与主机同步的问题.我的Docker的版本是18.03.1-ce,构建9ee9f40,Docker Compose的版本是1.21.2,构建一个133471. 我的docker-compose.yml看起来像:
我的Dockerfile:
许多博客文章和Stack Overflow答案都描述了外部卷的技巧.例如,this one. 该应用程序运行良好.源代码是同步的.热重装也很有效. 我唯一的问题是node_modules文件夹在主机上是空的.是否可以将Docker容器内的node_modules文件夹与主机同步? 我已经读过这些答案: > docker-compose volume on node_modules but is empty 不幸的是,他们并没有帮助我很多.我不喜欢the first one,因为我不想在我的主机上运行npm install,因为可能存在跨平台问题(例如主机是Windows或Mac,Docker容器是Debian 8或Ubuntu 16.04). The second one对我也不好,因为我想在我的Dockerfile中运行npm install,而不是在Docker容器启动后运行它. 另外,我找到了this blog post.作者试图解决我面临的同样问题.问题是node_modules不会被同步,因为我们只是将它们从Docker容器复制到主机. 我希望Docker容器中的node_modules与主机同步.请考虑我想要: >自动安装node_modules而不是手动安装 我需要在主机上安装node_modules,因为: >在需要时阅读源代码的可能性 提前致谢. 这里有三件事:
>当你运行docker build或docker-compose build时,你的Dockerfile会构建一个包含/usr/src / app / node_modules目录和Node安装的新映像,但没有别的.特别是,您的应用程序不在构建的映像中. 如果您要启动另一个容器并将命名卷附加到它,我希望您在那里看到node_modules树.对于您所描述的内容,您只需要不需要命名卷:从dock:block和docker-compose.yml文件末尾的volumes:部分删除第二行. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |