我尝试使用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: {}
非常感谢您的帮助
答案 0 :(得分:1)
npm运行服务是在热重载模式下运行vue.js的部分。在生产环境中,命令为npm run build。
对于开发人员环境,要使用以下命令启动应用程序
CMD ["npm", "run", "serve"]
代替
CMD ["nginx", "-g", "daemon off;"]
注意:您可以将nginx用于产品环境应用程序。 参考1:Vue.js app on a docker container with hot reload 参考2:https://shekhargulati.com/2019/01/18/dockerizing-a-vue-js-application/