我有一個具有給定文件夾結構的 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 關注
- 208 瀏覽
添加回答
舉報
0/150
提交
取消