Sac*_*ces 7 proxy docker webpack docker-compose webpack-dev-server
我有两个使用docker-compose管理的docker容器,似乎无法正确使用webpack代理对后端api的一些请求.
docker-compose.yml:
version: '2'
services:
web:
build:
context: ./frontend
ports:
- "80:8080"
volumes:
- ./frontend:/16AGR/frontend:rw
links:
- back:back
back:
build:
context: ./backend
expose:
- "8080"
ports:
- "8081:8080"
volumes:
- ./backend:/16AGR/backend:rw
Run Code Online (Sandbox Code Playgroud)
服务Web是一个由webpack-dev-server 提供服务的简单响应应用程序.服务返回是节点应用程序.
从主机访问任一应用程序我没有问题:
$ curl localhost
> index.html
$ curl localhost:8081
> Hello World
Run Code Online (Sandbox Code Playgroud)
我也可以从Web容器ping和卷曲后台服务:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
73ebfef9b250 16agr_web "npm run start" 37 hours ago Up 13 seconds 0.0.0.0:80->8080/tcp 16agr_web_1
a421fc24f8d9 16agr_back "npm start" 37 hours ago Up 15 seconds 0.0.0.0:8081->8080/tcp 16agr_back_1
$ docker exec -it 73e bash
$ root@73ebfef9b250:/16AGR/frontend# curl back:8080
Hello world
Run Code Online (Sandbox Code Playgroud)
但是我的代理有问题.Webpack开始于
webpack-dev-server --display-reasons --display-error-details --history-api-fallback --progress --colors -d --hot --inline --host=0.0.0.0 --port 8080
Run Code Online (Sandbox Code Playgroud)
和配置文件是
frontend/webpack.config.js:
var webpack = require('webpack');
var config = module.exports = {
...
devServer: {
//redirect api calls to backend server
proxy: {
'/api': {
target: "back:8080",
secure: false
}
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
当我尝试用我的应用程序中的链接请求/ api/test例如我得到一般错误时,链接和谷歌没有多大帮助:(
[HPM] Error occurred while trying to proxy request /api/test from localhost to back:8080 (EINVAL) (https://nodejs.org/api/errors.html#errors_common_system_errors)
Run Code Online (Sandbox Code Playgroud)
我怀疑有些奇怪的事情,因为代理在容器上,请求在localhost上,但我真的没有想法解决这个问题.
我想我设法解决了这个问题.只需要使用以下内容更改webpack配置
devServer: {
//redirect api calls to backend server
proxy: {
'/api': {
target: {
host: "back",
protocol: 'http:',
port: 8080
},
ignorePath: true,
changeOrigin: true,
secure: false
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3123 次 |
| 最近记录: |