在docker中运行Webpack-dev-server比在本地机器上慢得多

Gri*_*yer 10 macos docker webpack

我正在将我的大部分开发过程转移到docker中,以确保计算机之间的并行开发环境,因此不会因版本不匹配等原因而出现奇怪的错误或问题.

所有这一切都很好,除了在docker中运行webpack-dev-server之外,构建过程比在我的计算机上本地运行时要慢得多.(比如在码头工作3-5分钟,在本地30秒到1分钟).有什么方法可以加快速度吗?这只是一个问题,Docker/webpack通过已安装的卷与我的硬盘驱动器上的大量文件进行交互吗?

如果重要的话,我的主机系统是一台运行High Sierra的Mac,配备16bg内存.

我正在运行docker for mac,docker -v返回:Docker版本17.12.0-ce,build c97c6d6

我希望所有这些都足够清楚,如果我能添加任何信息,请告诉我!

Gri*_*yer 8

对于那些处于类似位置的人,正如马特所说,问题来自于装载量.通过使用docker的卷缓存模式,我大大加快了构建速度.关于它的文档就在这里.

该命令看起来像这样:

docker run -v \local\director:docker\directory:cached dockerImage

  • 谢谢你!花了很长时间才弄清楚这个问题,这个答案是关键,它将我的构建时间从 30 秒减少到 <1 秒。对于使用 docker-compose.yml 文件的任何人,您可以使用相同的语法并将 `:cached` 添加到卷的末尾。 (2认同)

Nic*_*las 5

我建议使用delegated而不是cached按照文档:

缓存:在这种情况下,主机是权威的。在主机上的写入可供容器使用之前可能会有延迟。

Deleated:容器具有权威性。容器内的更新可能会延迟出现在主机上。

所以 docker-compose 文件如下:

version: '3'
services:
  front:
    container_name: my-front-dev
    image: my-front-dev-image
    build:
      context: .
      dockerfile: front/Dockerfile.dev
    ports:
      - 5002:80
    volumes:
      - ./front/:/app/:rw:delegated
Run Code Online (Sandbox Code Playgroud)