我试图用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。
对于dev环境,要启动应用程序,请使用此命令
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/