Vue.js 应用程序在 docker 容器上热重载

Vue.js app on a docker container with hot reload

当 运行 我的 vue.js 应用程序在 docker 实例上时,我有明显的延迟和高 cpu 使用率。

这是我的docker设置

docker-compose.yml

version: '2'
services:

  app:
    build:
      context: ./
      dockerfile: docker/app.docker
    working_dir: /usr/src/app
    volumes:
    - ~/.composer-docker/cache:/root/.composer/cache:delegated
    - ./:/usr/src/app
    stdin_open: true
    tty: true
    environment:
    - HOST=0.0.0.0
    - CHOKIDAR_USEPOLLING=true
    ports:
    - 8080:8080

app.docker

# base image
FROM node:8.10.0-alpine

# Create app directory
WORKDIR /usr/src/app

# Install app dependencies
COPY package*.json ./

RUN npm install

# Bundle app source
COPY . .

EXPOSE 8080

CMD [ "npm", "run", "serve"]

当我输入 docker-compose up -d 并且我的应用程序正在加载 http://localhost:8080/ 时,此设置工作正常 但是热重新加载发生在 10 秒后,然后 15 秒之后它继续增加,我的笔记本电脑 cpu 使用率达到 60% 并且还在增加

我在 mac book pro 上使用 16 GB 内存,对于 docker 我启用了 4 cpu 和 6 GB 内存。

如何解决这个问题?

delegatedcached 选项之一添加到安装您的应用程序目录的卷。特别是使用缓存后,我体验到了显着的性能提升:

volumes:
  - ~/.composer-docker/cache:/root/.composer/cache:delegated
  - ./:/usr/src/app:cached