无法获得热重装以在Docker中的Nginx之后工作

时间:2019-04-19 12:37:34

标签: docker nginx vue.js

我正在尝试使用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使用该应用程序,但仍然遇到相同的问题。这是我遇到的错误: Errors 1 Errors 2

1 个答案:

答案 0 :(得分:1)

因此,在意识到我的问题与nginx无关之后,我发现了this博文,给我一个答案。事实证明,我需要像这样将环境变量添加到应用程序的容器中:

environment:
      - CHOKIDAR_USEPOLLING=true

现在我的控制台仍然充满错误,但似乎完全是另外一个问题,因为现在可以进行热重装。