今天遇到了一个使用多个docker容器时服务间通讯的问题,在这里做个记录,也帮助需要的人。
现在有两个服务–grpcclient
和grpcserver
,需要在client
中调用server
的函数,这时需要指定server
的地址。由于不是在生产环境,所以ip是会变的,所以这里不能通过指定ip的方式来访问。
这里直接贴出docker compose
的配置文件
version: '3'
services:
grpcserver:
build:
context: .
dockerfile: $GOPATH/src/gRpcServer/Dockerfile
image: grpcserver:latest
container_name: grpcserver
ports:
- "8089:8089"
networks:
- server
command: ["./opt/main"]
grpcclient:
build:
context: .
dockerfile: $GOPATH/src/gRpcClient/Dockerfile
image: grpcclient:latest
container_name: grpcclient
ports:
- "8088:8088"
networks:
- server
command: ["./opt/main"]
networks:
server:
driver:
bridge
由上面的配置文件看出两个服务都使用了server
这个network,这样client调用server时可以直接使用server的服务名称
Conn, err = grpc.Dial("grpcserver:8089", opts...)
if err != nil {
panic(err)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)