无法连接到我的容器化 gRPC 服务器
Cannot connect to my containerized gRPC server
我有一个 git 具有给定文件夹结构的回购协议
grpc-repo
|---grpc-client (:8083)
|---grpc-server (:9000)
|---docker-compose.yml
|---Dockerfile
|---Dockerfile2
现在,这些 gRPC 客户端-服务器项目通常是 运行 无缝的。
但是,我需要将这个项目 dockerize。
下面给出的是我的docker-compose.yml
version: "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-network
networks:
my-network:
driver: bridge
dockerizing 项目后,我很容易连接到 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)
}
谁能帮我解决我做错了什么?
提前致谢!
要从另一个容器访问 docker 容器中的 gRPC 运行,您必须使用 DNS 解析。
grpc.Dial("dns:///grpc-server:9000", grpc.WithInsecure())
其中 grpc-server
是您在 container_name: grpc-server
中声明的容器名称
我有一个 git 具有给定文件夹结构的回购协议
grpc-repo
|---grpc-client (:8083)
|---grpc-server (:9000)
|---docker-compose.yml
|---Dockerfile
|---Dockerfile2
现在,这些 gRPC 客户端-服务器项目通常是 运行 无缝的。 但是,我需要将这个项目 dockerize。
下面给出的是我的docker-compose.yml
version: "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-network
networks:
my-network:
driver: bridge
dockerizing 项目后,我很容易连接到 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)
}
谁能帮我解决我做错了什么? 提前致谢!
要从另一个容器访问 docker 容器中的 gRPC 运行,您必须使用 DNS 解析。
grpc.Dial("dns:///grpc-server:9000", grpc.WithInsecure())
其中 grpc-server
是您在 container_name: grpc-server