我 mount 本地的文件夹,然后运行 serve 服务。本机基本两分钟就可以启动,但是 docker 容器二十分钟都起不来,需要设置什么吗?
docker run -dt -p 127.0.0.1:3000:3000 --name aaa -w=/app --mount=type=bind,source=$pwd/vue-app/,target=/app -e CHOKIDAR_USEPOLLING=true node
这是运行命令
1
qwq11 2023-08-09 18:49:24 +08:00 via Android
我没理解错的话,你好像只启动了个 node ?
|
3
YuJianrong 2023-08-09 20:37:05 +08:00
里面大概率是个 webpack ?
webpack 非常吃内存,如果你的 docker 内存分配不高的话就会非常慢甚至启动不起来。 即使内存足了,webpack 需要读取海量文件,这些文件都是 mount 过去的,不同的 OS 读取性能不一样,Mac 的话读取性能很低,即使内存解决了我估计也不会短于 10 分钟。 要快一点可以不用 mount 而是整个文件夹 copy 进去(或者在 build docker image 的时候把 node_modules 装进去),估计能快一丢丢。 |
4
yinmin 2023-08-09 20:37:10 +08:00
改成这个试试:
docker run -dt -p 127.0.0.1:3000:3000 --name aaa -w /app -v $(pwd)/vue-app/:/app -e CHOKIDAR_USEPOLLING=true node |
5
yinmin 2023-08-09 22:13:35 +08:00
如果你使用 docker for windows ,文件是放在 windows 的 NTFS 磁盘上然后 mount 到 docker 里,docker -> 底层 linux 虚拟机 -> windows 系统 -> 读 NTFS 上的文件,这么一圈下来是很慢的。需要写 dockerfile 将文件复制到容器里去运行。
|
6
Vegetable 2023-08-09 22:17:07 +08:00
你至少不要使用挂载的 node_modules ,否则 serve 这一套下来 IO 吃不消
|