【问题标题】:Proxying request from webpack 2 using webpack-dev-server to backend api in docker containers使用 webpack-dev-server 将来自 webpack 2 的请求代理到 docker 容器中的后端 api
【发布时间】:2017-05-11 05:26:47
【问题描述】:

我正在尝试使用 docker 容器代理我的 http 请求以表达在后端运行的服务器,但我在浏览器控制台中收到 HTTP 504 并在 docker 终端中出现以下错误

HPM] Error occurred while trying to proxy request /api/getData from localhost:8080 to http://localhost:3001 (ECONNREFUSED) (https://nodejs.org/api/errors.html#errors_common_system_errors)

这是我的 docker-compose.yml 文件

app:
 build: .
 ports:
     - "8080:8080"
 links:
    - back

back:
  build: ./server
  ports:
   - "3001:3001"

每个容器我也有 2 个 docker 文件 要在一个容器中运行 webpack-dev-server 2,我有以下 Dockerfile

FROM node

WORKDIR /usr/src/app

ADD . /usr/src/app

RUN npm install

CMD ["npm", "run","dev"]

而我的 Dockerfile 来运行具有我的 express 服务器的容器是

FROM node

WORKDIR /usr/src/app

ADD . /usr/src/app

RUN npm install

EXPOSE 3001

CMD ["npm", "run","serve"]

请使用 webpack 2 版本并运行 webpack-dev-server 找到我的 webpack.config.js 的 sn-p

//.... all required dependency for webpack
devServer: {
 host:'0.0.0.0',
    contentBase: path.join(__dirname, "dist"),
    compress: false,
    proxy: {
    "/api": {
        "target": "http://0.0.0.0:3001",
        "secure": false
      },
    },
    hot:true
  },
  devtool: 'inline-source-map',
  // ...all required plugins and moduloes for compiling my app

我正在使用以下命令在 package.json 中运行我的应用程序

"scripts": {
   "serve": "nodemon server/server.js --ignore components",
   "dev": "webpack-dev-server",
}

我还提到了以下链接 which uses webpack 1 但是 webpack2 现在不记录链接中列出的参数。我也尝试使用附加参数,但没有用。

webpack 2 也提供任何更改 Origin 参数来代理请求,因为我认为 webpack 开发服务器正在考虑 webpack 1 中没有 changeOrigin 参数的相同源。

我们将不胜感激。

提前致谢。

【问题讨论】:

    标签: docker docker-compose dockerfile webpack-dev-server webpack-2


    【解决方案1】:

    只是发布答案,以便它可以用于像我这样的人。我将我的请求代理到容器名称而不是 webpack 配置中的 localhost。小傻傻的 misakr,但我花了全部时间才弄明白。

     proxy: {
      "/api": {
        "target": "http://back:3001", //back is the service name in which my node server is running. refer docker-compose.yml
        "secure": false
      },
    },
    

    【讨论】:

      猜你喜欢
      • 2017-02-28
      • 2019-07-08
      • 2017-10-04
      • 2016-06-02
      • 2022-06-24
      • 2018-04-29
      • 2016-06-11
      • 2021-02-09
      • 2019-05-02
      相关资源
      最近更新 更多