Angular 如何将Docker容器内的node_模块表单同步到node_模块文件夹外?
有没有办法将容器内部的节点模块表单映射到外部 我想在容器内安装它们(以便跨平台保持一致性),但我想在它们更改到容器外的node_modules文件夹时复制它们 有没有一个简单的方法可以做到这一点 我目前有docker compose版本3。 谢谢 我的Dockerfile(在前端文件夹中): 我的docker-compose.ymlAngular 如何将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
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