请教个问题,有没有在docker上部署go-micro程序的教程啊,我本地测试没问题,然后部署到docker后一直报错408,timeout,这个要怎么做啊,
```go
func (h Handler) WebApiListByUser(ctx context.Context, user *pb.SysUser, resp *pb.PageResp) error { panic("implement me") }
```
上面是一个简单的返回异常,但是还是报错408, Request TimeOut
https://blog.csdn.net/zoeou/article/details/89262019 可以仔细查看一下
应该是我的问题没有描述清楚,是这样的,本地测试是没问题的,但是部署到docker后好像ip不通。开发环境是windows,本机上安装了docker,然后micro也是在windows上。在开发阶段都是在windows主机上,所以都是能正常访问接口服务的。然后我就开始想去docker上部署了
1.编写dockerfile且创建镜像,`docker build -t test .`,ok,正常创建了镜像
2.创建容器,`docker run -it -d --name test -p 8700:8700 test`,正常启动了,并且在etcd上也能看到该服务已经注册进去了
3.查询该服务,`micro health test`,这个状态就一直都是`test-4e8ddcb4-6047-44a1-9c76-9e0e777490f6 172.17.0.4:8700 {"id":"go.micro.client","code":408,"detail":"context deadline exceeded","status":"Request Timeout"}`,可以看到这个ip是docker容器的ip,不是宿主机的ip,然后就一直408了,
4.于是我指定了服务地址`docker run -it -d --name test -p 8700:8700 test --server_address=127.0.0.1:8700`,此时不再是408了。成了500错误`test-5e5b8759-0d3b-44f7-ae37-20b62c58bd60 127.0.0.1:8700 {"id":"go.micro.client","code":500,"detail":"connection closed","status":"Internal Server Error"}`,