Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Docker特定设置_C#_Docker_.net Core - Fatal编程技术网

C# Docker特定设置

C# Docker特定设置,c#,docker,.net-core,C#,Docker,.net Core,我有特定于环境的配置。例如,在通过IIS调试项目时,我希望访问的路径位于C:\MyApp\MyLocation中,但在Docker中调试项目时,路径将为ine\app\something 我的计划是为这种类型的构建提供一个特定的appsettings.json。因此,在我的appsettings.development.json中通常有C:\MyApp\MyLocation的地方,我会创建一个appsettings.docker.json,将设置放在其中,然后将“ASPNETCORE\u ENV

我有特定于环境的配置。例如,在通过IIS调试项目时,我希望访问的路径位于C:\MyApp\MyLocation中,但在Docker中调试项目时,路径将为ine\app\something

我的计划是为这种类型的构建提供一个特定的appsettings.json。因此,在我的appsettings.development.json中通常有C:\MyApp\MyLocation的地方,我会创建一个appsettings.docker.json,将设置放在其中,然后将“ASPNETCORE\u ENVIRONMENT”的环境变量添加/更改为“docker”

但是,该计划不起作用,因为我现在通过Docker调试我的应用程序时收到以下消息:

System.InvalidOperationException:'无法配置HTTPS端点。未指定服务器证书,无法找到默认的开发人员证书或证书已过期。 要生成开发人员证书,请运行“dotnet dev certs https”。要信任证书(仅限Windows和macOS),请运行“dotnet dev certs https--trust”。 有关配置HTTPS的更多信息,请参阅

是否有任何方法可以使其以这种方式工作,或者有任何其他方法可以实现docker特定配置?

编辑:

实际上,在重新阅读您的问题并正确阅读错误之后,我可以看到您的问题与配置无关

您的Asp.Net应用程序已配置为使用HTTPS的开发人员证书。您可以通过删除
AddAuthentication
UseAuthentication
来停用,或者必须在Docker映像上安装证书

在临时运行应用程序之前,您可以在DOCKERFILE中使用
dotnet dev certs https
,但将来应该创建真正的https证书并正确配置应用程序


您已使用.Net Core标记了您的问题,因此我猜您正在使用它

如果是这样,您可能应该通过配置提供程序读取配置。如果您的应用程序是这样启动的:

公共类程序
{
公共静态void Main(字符串[]args)
{
CreateHostBuilder(args.Build().Run();
}
公共静态IHostBuilder CreateHostBuilder(字符串[]args)=>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder=>
{
webBuilder.UseStartup();
});
}
它将加载json配置提供程序,然后加载环境变量配置提供程序。这意味着json配置文件中的任何值都可以并且将被正确匹配json键的环境变量覆盖

在启动Docker映像时,设置环境变量非常容易,而且当您想要设置Docker映像的配置时,这通常是首选方法

层次结构通常是通过用
\uuu
分隔零件来设置的

set MyKey="My key from Environment"
set Position__Title=Environment_Editor
set Position__Name=Environment_Rick
dotnet run

有关的更多信息。

查看更多详细信息Hanks@Patrick,但我不确定这与我的问题有关吗?链接的问题是关于不安全的注册表,您链接到的部分似乎是关于MacOS特定的解决方案。你能说明一下这两者之间的关系吗?