我正在使用Visual Studio和usersecrets在asp.net中设置一个新的Docker容器。从容器内调试时如何访问用户提示?
容器是一个托管通用服务的linux容器,如果我提供appsettings.json文件,它可以正常工作,但不会填充secrets.json形式的信息。附带说明一下,我确实将其与标准的asp.net控制台应用程序配合使用。
我已经通过https://docs.microsoft.com/en-us/aspnet/core/security/app-secrets?view=aspnetcore-2.2&tabs=windows失败了。
我也浏览了https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/generic-host?view=aspnetcore-2.2页。
似乎没有指向将它们与docker容器一起使用的
。 `var builder = new HostBuilder()
.ConfigureHostConfiguration(configHost =>
{
configHost.SetBasePath(Directory.GetCurrentDirectory());
configHost.AddJsonFile("hostsettings.json", optional: true);
configHost.AddEnvironmentVariables(prefix: "PREFIX_");
if (args != null)
{
configHost.AddCommandLine(args);
}
})
.ConfigureAppConfiguration((hostingContext, config) =>
{
config.AddJsonFile("appsettings.json", optional: true);
if(hostingContext.HostingEnvironment.IsDevelopment())
{
config.AddUserSecrets<SecretStuff>();
}
})
.ConfigureServices((hostContext, services) =>
{
services.Configure<SecretStuff> (hostContext.Configuration.GetSection(nameof(SecretStuff)));
services.Configure<ProcessFileSettings>(hostContext.Configuration);
services.AddScoped<Interfaces.IFileUploader, WebClients.FileUploader>();
services.AddHostedService<FolderLookupHostedService>();
});
await builder.RunConsoleAsync();'
答案 0 :(得分:0)
在我的同事的帮助下,我们找到了解决方案。
您需要在docker-compose.yml文件中添加一个指向usersecrets位置的卷值。
noHeading
添加Container Orchestrator支持时,Visual Studio 2017不会在控制台应用程序(.Net Core)项目中将卷行添加到生成的撰写文件中,而是在ASP.NET Core Web应用程序中添加。