Vue.js локальная разработка с помощью docker-compose - PullRequest
1 голос
/ 01 мая 2019

Я пытался использовать 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 Ответ

1 голос
/ 01 мая 2019

Служба npm run - это часть, которая запускает vue.js в режиме горячей перезагрузки. В производстве команда npm run build.

Для среды разработки, чтобы запустить приложение, используйте эту команду

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

вместо

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

Примечание. Вы можете использовать nginx для приложения prod env. Ссылка 1: Приложение Vue.js в док-контейнере с горячей перезагрузкой Ссылка 2: https://shekhargulati.com/2019/01/18/dockerizing-a-vue-js-application/

...