Локальная разработка Vue.js с помощью docker-compose

Я пробовал использовать 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: {}

Большое спасибо за помощь


person Oiletz Matze    schedule 01.05.2019    source источник


Ответы (1)


Npm run serve - это часть, которая запускает 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/

person Senthil    schedule 01.05.2019
comment
Большое Вам спасибо. да, это работа. проблема в том, что когда я привязываю интерфейс к "сетям посланников" в файле docker-compose, мне нужно обслуживать статический интерфейс через Nginx ... и тогда горячая перезагрузка больше не работает. - person Oiletz Matze; 01.05.2019