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

标签 docker vue.js docker-compose hot-reload

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

十分感谢你的帮助

最佳答案

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 - 使用 docker-compose 进行 Vue.js 本地开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55938477/

相关文章:

vue.js - Vuex:[Vue warn]:计算属性 "username"已分配给但它没有 setter

Vue.js、Vuex、Vue-Router SPA 以及扩展应用程序客户端与服务器端

node.js - 当前端和后端在虚拟 docker 网络中时,如何使用 axios 寻址后端主机

azure - 什么是 Docker 注册表服务连接?

javascript - axios 'Get' 函数未调用

macos - Docker-Compose挂载文件不属于root

Docker Compose 与多阶段构建

python - 在docker-py中使用管道

linux - 是否可以在 Kubernetes Pod 中挂载主目录 (~)?