docker - 如何在 Docker 映像的 .NetCore 项目中启动 Kestrel
问题描述
我在 .NET core 2.1 中使用 SSL 证书创建了一个 Web 应用程序。部署到我们的测试服务器时运行良好。现在我正在尝试使用 SSL 证书创建 Docker 映像。
这就是我创建图像的方式:
这就是我设置 yml 的方式
docker-compose.override.prod.yml
我可以创建 docker 映像并对其进行处理,但我收到以下错误:Microsoft.AspNetCore.Server.Kestrel[0] 无法启动 Kestrel
我已验证 SSL 证书已创建,并且该项目具有指向该证书的链接。
解决方案
您应该使用 SSL 支持启动 Krestel
WebHost.CreateDefaultBuilder(args)
.UseKestrel(options =>
{
options.Listen(IPAddress.Loopback, 5000); // http:localhost:5000
options.Listen(IPAddress.Any, 80); // http:*:80
options.Listen(IPAddress.Loopback, 443, listenOptions =>
{
listenOptions.UseHttps("certificate.pfx", "password");
});
})
.UseStartup<Startup>()
.Build();
必须通过 Dockerfile 中的相应命令将 PFX 文件复制到 docker 映像中。
推荐阅读
- javascript - 在 Vscode 中编辑 Typescript 文件中的 css 代码时,所有文本都是红色的,我该如何解决这个问题?
- reporting-services - SSRS 将 IN 子句传递给 Redshift
- scala - 运行 AWS EMR Spark:java.io.FileNotFoundException ... io.netty_netty-transport-native-epoll-4.1.59.Final.jar 不存在
- java - 如何将我现有的两个 Android Studio 活动转换为两个片段,以便我可以制作导航栏?
- laravel-nova - Laravel Nova Metrics - 如何在没有 k 的情况下显示数字
- python - 用日期和时间格式替换 NaN
- spring - 尝试 spring-cloud-config-server-git 集成时无法从 client-config 连接到 spring cloud config-server
- r - 将值从一个数据帧分配到另一个数据帧
- python - ImportError:libbz2.so.1.0:无法打开共享对象文件:没有这样的文件或目录|| 仅在 PYCHARM 中
- ios - WebRTC 音频通话语音在 iOS 中听不到,不适用于移动数据,但适用于 WIFI 连接