我有一个具有给定文件夹结构的 git repogrpc-repo|---grpc-client (:8083)|---grpc-server (:9000)|---docker-compose.yml|---Dockerfile|---Dockerfile2现在,这些 gRPC 客户端-服务器项目正在正常无缝运行。但是,我需要对这个项目进行 docker 化。下面给出的是我的docker-compose.ymlversion: "3.3"services: client: container_name: grpc-client build: dockerfile: Dockerfile context: . volumes: - .:/app ports: - 8083:8083 networks: - my-network server: container_name: grpc-server build: dockerfile: Dockerfile2 context: . volumes: - .:/app ports: - 9000:9000 networks: - my-networknetworks: my-network: driver: bridge将项目docker化后,我很容易连接到gRPC客户端..但是客户端无法连接到gRPC服务器。它说 ...rpc error: code = Unavailable desc = connection error: desc = \"transport: Error while dialing dial tcp :9000: connect: connection refused这就是我在我的 golang 代码中创建与服务器的连接的方式conn, err := grpc.Dial(":9000", grpc.WithInsecure())if err != nil { log.Fatalf("could not connect: %s", err)}谁能帮我解决我在这里做错了什么?提前致谢 !
1 回答
慕的地10843
TA贡献1785条经验 获得超8个赞
要从另一个容器访问在 docker 容器中运行的 gRPC,您必须使用 DNS 解析。
grpc.Dial("dns:///grpc-server:9000", grpc.WithInsecure())
您在其中grpc-server
声明的容器名称在哪里container_name: grpc-server
- 1 回答
- 0 关注
- 154 浏览
添加回答
举报
0/150
提交
取消