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

4

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

非常感谢您的帮助。
1个回答

4

非常感谢。是的,它可以工作。问题在于,当我将前端绑定到docker-compose文件中的“envoy networks”时,我需要通过Nginx提供静态前端...然后热重载就不再起作用了。 - Oiletz Matze

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接