使用webpack dev server将webpack 2的请求代理到docker容器中的后端api

使用webpack dev server将webpack 2的请求代理到docker容器中的后端api,docker,docker-compose,dockerfile,webpack-dev-server,webpack-2,Docker,Docker Compose,Dockerfile,Webpack Dev Server,Webpack 2,我试图用docker容器代理我的http请求到后端运行的express服务器,但我在浏览器控制台中得到了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_com

我试图用docker容器代理我的http请求到后端运行的express服务器,但我在浏览器控制台中得到了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"]
要运行包含express服务器的容器的Dockerfile是

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的一段代码

//.... 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",
}
我还提到了以下链接 但是webpack2现在不记录链接中列出的参数。我也试着使用额外的参数,但是没有用

Webpack2是否提供了任何changeOrigin参数来代理请求,因为我认为WebpackDev服务器正在考虑在Webpack1中没有changeOrigin参数的情况下,Origin是相同的

任何帮助都将不胜感激


提前谢谢。

只需发布答案,以便对像我这样的人有用。我在webpack config中将请求代理到容器名,而不是本地主机。这是一个愚蠢的小错误,但我花了全部时间才弄明白

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

只是把答案贴出来,这样像我这样的人就可以用了。我在webpack config中将请求代理到容器名,而不是本地主机。这是一个愚蠢的小错误,但我花了全部时间才弄明白

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