.NET Core перезагрузить настройки в контейнере - PullRequest
0 голосов
/ 28 марта 2019

У меня есть простое консольное приложение ядра .net, которое просто печатает на экране строку, считываемую из настроек

private static void Main(string[] args)
{
    var builder = new ConfigurationBuilder()
        .SetBasePath(Directory.GetCurrentDirectory())
        .AddJsonFile("Settings/appsettings.json", optional: true, reloadOnChange: true);
    var configuration = builder.Build();

    while (true)
    {
        var greeting = configuration.GetSection("MySettings").GetSection("Greeting").Value;
        Console.WriteLine(greeting);
    }        
}

Когда я запускаю его локально, reloadOnChange работает нормально, и я получаю изменение в строке плавно.

Так что теперь я пытался запустить его в рамках, для чего я добавил простой файл Docker

FROM microsoft/dotnet:2.1-sdk
WORKDIR /app

COPY *.csproj ./
RUN dotnet restore

COPY . ./
RUN dotnet publish -c Release -o out
ENTRYPOINT ["dotnet", "out/DynamicConfig.dll"]

И попытался проверить, что, если я смонтирую локальный файл appsettings, я получу такое поведение reloadOnChange, сначала я попытался смонтировать только файл, но после прочтения некоторых потенциальных проблем (хотя я думаю, что они могут быть преодолены) решил перенести его в эта папка настроек. Тем не менее, я не могу изменить его

Команда, которую я использую для запуска, это

docker run -it --rm -v / $ {PWD} / Настройки: / app / Настройки myimage

Он немного отличается по синтаксису для использования на машине с Windows (и даже попытался сопоставить / app / out / Settings безуспешно)

Хотелось бы услышать что-нибудь вокруг причин, по которым это "не работает"

Спасибо

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