Есть ли способ передать секреты отладки в контейнер докера из консольного приложения asp.net, используя общий хост? - PullRequest
0 голосов
/ 06 февраля 2019

Я устанавливаю новый контейнер Docker в asp.net, используя Visual Studio и usersecrets.Как получить доступ к секретам пользователя при отладке из контейнера?

Контейнер - это контейнер linux, на котором размещается универсальная служба, он отлично работает, если я предоставляю файл appsettings.json, но не заполняет секреты формы информации.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 page.

Кажется, ничто не указывает на использование их с док-контейнером.

  `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();'

1 Ответ

0 голосов
/ 07 февраля 2019

С помощью моих коллег мы нашли решение.

Вам необходимо добавить значение тома в файл docker-compose.yml, указывающее на местоположение usersecrets.

volumes:
  - ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro

При добавлении поддержки Container Orchestrator Visual Studio 2017 не добавляет строку тома в сгенерированный файл композиции в проекте Console App (.Net Core), а в веб-приложении ASP.NET Core.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...