Angular 如何将Docker容器内的node_模块表单同步到node_模块文件夹外?

Angular 如何将Docker容器内的node_模块表单同步到node_模块文件夹外?,angular,docker,node-modules,Angular,Docker,Node Modules,有没有办法将容器内部的节点模块表单映射到外部 我想在容器内安装它们(以便跨平台保持一致性),但我想在它们更改到容器外的node_modules文件夹时复制它们 有没有一个简单的方法可以做到这一点 我目前有docker compose版本3。 谢谢 我的Dockerfile(在前端文件夹中): 我的docker-compose.yml version '3' services: frontend: build: context: ./frontend dockerfile: Do

有没有办法将容器内部的节点模块表单映射到外部

我想在容器内安装它们(以便跨平台保持一致性),但我想在它们更改到容器外的node_modules文件夹时复制它们

有没有一个简单的方法可以做到这一点

我目前有docker compose版本3。 谢谢

我的Dockerfile(在前端文件夹中):

我的docker-compose.yml

version '3'
services:
 frontend:
  build:
   context: ./frontend
   dockerfile: Dockerfile
  ports:
   - '4200:4200'
  container_name : frontend
  volumes:
   - ./frontend:/frontend
   - /frontend/node_modules





我认为最好有一个基本映像,您的节点_模块应该在那里,并且在主映像中应该使用基本映像

例如,您可以使用如下基本图像:

FROM node:14-alpine
WORKDIR /app
COPY ./package.json .
RUN npm install
然后执行这个命令

docker build -t base-image .

then use it like this 

从基础图像到webapp 运行mkdir-p/app WORKDIR/app 复制package.json/app 运行npm安装 抄袭/应用程序


但我无法在开发时安装新模块。您可以编写一个批处理脚本,首先运行基本映像,然后运行主映像。如果您的package.json文件已更改基本映像,请重新运行npm Install,
node\u modules
树本身在主机操作系统之间不一定一致,因此在MacOS主机上使用Linux容器
node\u modules
可能无法工作。另一方面,我认为只要运行
npm安装
就可以在任何地方都始终如一地工作;我可能不会让Docker参与其中。true在整个操作系统中并不一致,但由于您使用容器操作系统来构建它们,它将。。。这是使用docker的原因之一……那么,为什么
节点_modules
树需要位于主机上呢?您可以删除
卷:
块以使用容器中内置的代码。我需要它使vs code停止突出显示每个模块导入:/red,就像它找不到它们一样
docker build -t base-image .

then use it like this