我在docker上有一个vueJS应用程序runnig。
当我通过yarn serve
运行应用程序时,它运行良好,在docker中也是如此。
我的问题是热重装将无法工作。
我的Dockerfile:
FROM node:12.2.0-alpine
WORKDIR /app
COPY package.json /app/package.json
RUN npm install
RUN npm install @vue/cli -g
CMD ["npm", "run", "serve"]
我的docker-compose.yml:
version: '3.7'
services:
client:
container_name: client
build:
context: .
dockerfile: Dockerfile
volumes:
- '.:/app'
- '/app/node_modules'
ports:
- '8082:8080'
有人能看到我犯的错误吗?
答案 0 :(得分:1)
我找到了解决方案: 我在撰写文件中添加了以下内容:
environment:
- CHOKIDAR_USEPOLLING=true
答案 1 :(得分:1)
以上答案之一建议为chokidar轮询设置环境变量。根据{{3}},您可以在vue.config.js中将轮询选项设置为true。
module.exports = {
configureWebpack: {
devServer: {
port: 3000,
// https://github.com/vuejs-templates/webpack/issues/378
watchOptions: {
poll: true,
},
},
}
};
此外,请确保根据您的工作目录等正确安装要装入的卷,以确保正确监视文件。
答案 2 :(得分:1)
过去对我有用的是在 docker-compose.yml 文件中使用它:
frontend:
build:
context: .
dockerfile: vuejs.Dockerfile
# command to start the development server
command: npm run serve
# ------------------ #
volumes:
- ./frontend:/app
- /app/node_modules # <---- this enables a much faster start/reload
ports:
- "8080:8080"
environment:
- CHOKIDAR_USEPOLLING=true # <---- this enables the hot reloading
答案 3 :(得分:0)
还暴露8080端口
FROM node:12.2.0-alpine
EXPOSE 8080 # add this line in docker file.
WORKDIR /app
COPY package.json /app/package.json
RUN npm install
RUN npm install @vue/cli -g
CMD ["npm", "run", "serve"]
Docker撰写为
version: '3.7'
services:
client:
container_name: client
build:
context: .
dockerfile: Dockerfile
volumes:
- '.:/app'
- '/app/node_modules'
ports:
- '8080:8080'
服务器将在localhost:8080中运行