grpc 服务器在 docker-compose 中不起作用

You*_*ext 4 grpc asp.net-core

我使用 grpc server.in 构建示例项目 vs 一切正常,我的项目运行良好。dokcer-compose.yaml 是:

version: '3.3' 
services:
  grpcService:
    container_name: grpcserver
    image:  grpcImage
    ports:
      - "5003:5003"  //client
      - "5001:5001"  //grpc server
    restart: always
Run Code Online (Sandbox Code Playgroud)

在我http://127.0.0.1:5001为 grpc 服务器设置的项目中

http://127.0.0.1:5003为我处理的客户端设置(grpc 服务器使用 http)

当 docker-compose up 并调用 api 时,出现失败和找不到 grpc 服务器等

小智 6

您必须在 program.cs Grpc Server 中将 CreateHostBuilder 更改为此代码

public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>().ConfigureKestrel(options =>
                {
                    options.Listen(IPAddress.Any, 5001, listenOptions =>
                    {
                        listenOptions.Protocols = HttpProtocols.Http2;
                    });
                });
            });
}
Run Code Online (Sandbox Code Playgroud)

5001 是 grpc 服务器端口。(将此端口更改为您的 grpc 服务器端口)