【发布时间】:2021-02-13 14:57:19
【问题描述】:
有没有办法将容器内的节点模块形式映射到外部?
我想将它们安装在容器内(这样我可以跨平台保持一致性),但我想在它们更改到容器外的 node_modules 文件夹时复制它们。
有没有简单的方法来做到这一点?
我目前有 docker compose 版本 3。 谢谢
我的 Dockerfile(在前端文件夹中):
FROM
RUN mkdir /frontend
WORKDIR /frontend
COPY . .
RUN npm install -g @angular/cli && npm install
EXPOSE 4200
CMD ['ng','serve','--host','0.0.0.0']
我的 docker-compose.yml
version '3'
services:
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
ports:
- '4200:4200'
container_name : frontend
volumes:
- ./frontend:/frontend
- /frontend/node_modules
【问题讨论】:
-
node_modules树本身不一定在主机操作系统之间保持一致,因此在 MacOS 主机上使用 Linux 容器node_modules可能无法正常工作。另一方面,我认为只要运行npm install在任何地方都可以始终如一地运行;我可能不会将 Docker 带入其中。 -
true 在整个操作系统中并不一致,但是由于您使用容器操作系统来构建它们,所以它将是……这是使用 docker 的原因之一……
-
那么为什么
node_modules树需要在主机上呢?您可以删除volumes:块以使用容器中内置的代码。 -
我需要它来让 vs 代码停止突出显示每个模块导入:/ 红色就像找不到它们一样
标签: angular docker node-modules