具有热重载功能的Docker容器上的Vue.js应用

时间:2018-11-11 06:03:09

标签: docker vue.js vuejs2 docker-compose hot-reload

在docker实例上运行vue.js应用程序时,我出现了明显的延迟和高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的RAM,对于Docker,我启用了4个CPU和6 GB的RAM。

该问题如何解决?

1 个答案:

答案 0 :(得分:4)

delegatedcached选项之一添加到安装应用程序目录的卷中。使用缓存尤其可以显着提高性能:

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