我正在尝试使用docker compose和Nginx设置一个基本的Vue应用程序,该应用程序位于Docker容器中。我的问题是我无法进行热重装工作。我当前的设置如下: -使用docker compose创建2个容器。一个用于nginx,另一个用于我的vue应用。 -我使用Vue CLI初始化了Vue应用程序,因此这是一个全新的项目。 Vue应用程序容器不会通过外部暴露,因为它们都是通过nginx路由的。
在docker / nginx之外,热重装工作正常,虽然我可以在容器中访问应用程序,但热重装不起作用。我环顾四周,尝试了很多不同的Nginx配置,但无济于事。我对nginx尤其是Vue不太熟悉(这是我第一次尝试使用它)。我不确定这是Vue还是Nginx方面的配置问题。
这是我当前的Nginx配置:
server {
listen 8080;
listen [::]:8080;
location /app-api/ {
proxy_pass http://app-api:8080;
}
location /app-ui/ {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_pass http://app-ui:8080;
}
location /sockjs-node/ {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_pass http://app-ui:8080;
}
}
这是我的Vue配置:
module.exports = {
publicPath: '/app-ui',
devServer: {
disableHostCheck: true,
//https: true,
overlay: {
warnings: true,
errors: true
}
}
}
我有另一个应用程序作为示例,该应用程序具有相同的配置(这是我基于此的),并且该应用程序可以很好地进行热重装,因此我知道这是可能的。但是,该项目使用的是旧版本的Vue,并直接使用webpack而不是通过vue cli。
编辑:因此,似乎是问题所在,不是nginx。我删除了nginx并仅通过docker-compose使用该应用程序,但仍然遇到相同的问题。这是我遇到的错误:
答案 0 :(得分:1)
因此,在意识到我的问题与nginx无关之后,我发现了this博文,给我一个答案。事实证明,我需要像这样将环境变量添加到应用程序的容器中:
environment:
- CHOKIDAR_USEPOLLING=true
现在我的控制台仍然充满错误,但似乎完全是另外一个问题,因为现在可以进行热重装。