首页 > 解决方案 > grpc 服务器在 docker-compose 中不工作

问题描述

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

version: '3.3' 
services:
  grpcService:
    container_name: grpcserver
    image:  grpcImage
    ports:
      - "5003:5003"  //client
      - "5001:5001"  //grpc server
    restart: always

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

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

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

标签: asp.net-coregrpc

解决方案


您必须在 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;
                    });
                });
            });
}

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


推荐阅读