Vue.js使用docker-compose进行本地开发

问题描述 投票:0回答:1

我试图用docker-compose在当地开发。但我必须重建我的代码,如果......改变...所以我需要这个“热重载”功能,但我没有实现它。也许有人可以帮助我或给我一些提示。我不使用Nginx作为代理(Envoy),就像服务器一样。

Vue.js Docker

FROM node:lts-alpine as build-stage
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build

FROM nginx:stable-alpine as production-stage
COPY --from=build-stage /usr/app /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

Docker-Compose文件

version: '3.7'

services:
  front-envoy:
    build:
      context: ./envoy
      dockerfile: Dockerfile-frontenvoy
    volumes:
      - ./envoy/front-envoy.yaml:/etc/front-envoy.yaml
    networks:
      - envoymesh
    expose:
      - "80"
      - "8001"
    ports:
      - "8000:80"
      - "8001:8001"

  frontend:
    container_name: frontend
    restart: always
    build:
      context: ./frontend
      dockerfile: Dockerfile
    volumes:
      - ./frontend:/app
      - /app/node_modules      
    networks:
      envoymesh:
        aliases:
          - frontend
    environment:
      - SERVICE_NAME=frontend   
      - CHOKIDAR_USEPOLLING=true    
    expose:
      - "80"
    ports:
      - "8081:8081"


networks:
  envoymesh: {}

非常感谢你的帮助

docker vue.js docker-compose hot-reload
1个回答
1
投票

npm run serve是在热重载模式下运行vue.js的部分。在生产中,命令是npm run build。

对于dev环境,要启动应用程序,请使用此命令

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

代替

CMD ["nginx", "-g", "daemon off;"]

注意:您可以将nginx用于prod env应用程序。参考1:Vue.js app on a docker container with hot reload参考2:https://shekhargulati.com/2019/01/18/dockerizing-a-vue-js-application/

© www.soinside.com 2019 - 2024. All rights reserved.