【问题标题】:Vue.js local development with docker-compose使用 docker-compose 进行 Vue.js 本地开发
【发布时间】:2019-09-20 03:37:21
【问题描述】:

我尝试使用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】:

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

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

    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/

    【讨论】:

    • 非常感谢。是的,这是工作。问题是,当我将前端绑定到 docker-compose 文件中的“特使网络”时,我需要通过 Nginx 为静态前端提供服务……然后热重载不再起作用。
    猜你喜欢
    • 2018-04-15
    • 1970-01-01
    • 2021-06-04
    • 2020-05-03
    • 2020-06-12
    • 2022-08-20
    • 2023-03-25
    • 1970-01-01
    • 2020-07-19
    相关资源
    最近更新 更多