【发布时间】: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