4

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

Vue.js 码头工人

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-撰写文件

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: {}

非常感谢你的帮助

4

1 回答 1

4

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

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

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

代替

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

注意:您可以将 nginx 用于 prod env 应用程序。参考 1:带有热重载的 docker 容器上的 Vue.js 应用程序 参考 2:https ://shekhargulati.com/2019/01/18/dockerizing-a-vue-js-application/

于 2019-05-01T16:05:53.080 回答