项目迁移dotnet8,Docker容器报502问题解决
项目从dotnet6升级至dotnet8,本地运行正常,发布镜像至docker后容器运行正常,但请求改服务时响应502。
问题原因:项目内没有指定监听的端口,默认为80端口,但dotnet8 app的服务默认端口修改为了8080
解决方法:
1、在项目内增加指定服务监听的端口
builder.WebHost.ConfigureKestrel(serverOptions =>
{
serverOptions.Listen(IPAddress.Any, 指定端口, lo => lo.Protocols = HttpProtocols.Http1AndHttp2);
});
或者在appsettings.json配置
https://learn.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel/endpoints?view=aspnetcore-8.0#specify-ports-only
2、修改docker 启动时的映射端口为8080
参考链接:https://andrewlock.net/exploring-the-dotnet-8-preview-updates-to-docker-images-in-dotnet-8/#asp-net-core-apps-now-use-port-8080-by-default