PARAMS这个参数干嘛用的
来源:11-5 基于Docker-compose与Traefik1.x的容器化部署演示

慕仰9495179
2020-08-03
我看代码中也没使用这几个参数,并且微服务启动没有这个设置的参数,报错的,怎么解决。删掉后面三个就可以启动,但页面全部都报404
写回答
1回答
-
同学你好,-e PARAMS功能是将命令行参数传递给docker的容器应用中,
比如在非容器化启动应用的方式: ./account --dbhost=xxxxx; 那么用docker来启动的话就是:docker run ... -e PARAMS="-dbhost=xxxxx" ... account, 这样account这个容器就能接收到--dbhost这个命令行参数了。
按截图看的错误来看,似乎是--cachehost这个参数没有正确配置和解析?可以检查一下common/flags.go中是否包含了参数cachehost的定义,如:
package common import "github.com/micro/cli" // CustomFlags : 自定义命令行参数 var CustomFlags = []cli.Flag{ cli.StringFlag{ Name: "dbhost", Value: "127.0.0.1", Usage: "database address", }, cli.StringFlag{ Name: "mqhost", Value: "127.0.0.1", Usage: "mq(rabbitmq) address", }, cli.StringFlag{ Name: "cachehost", Value: "127.0.0.1", Usage: "cache(redis) address", }, cli.StringFlag{ Name: "cephhost", Value: "127.0.0.1", Usage: "ceph address", }, }
然后在service/apigw/handler/user.go里看看是否配置了解析:
func init() { //配置请求容量及qps bRate := ratelimit2.NewBucketWithRate(100, 1000) service := micro.NewService( micro.Flags(cmn.CustomFlags...), micro.WrapClient(ratelimit.NewClientWrapper(bRate, false)), //加入限流功能, false为不等待(超限即返回请求失败 ) micro.WrapClient(hystrix.NewClientWrapper()), // 加入熔断功能, 处理rpc调用失败的情况(cirucuit breaker) ) // 初始化, 解析命令行参数等 service.Init() // ...省略 }
012020-08-05
相似问题