容器中的.NET Core reloadOnChange设置

时间:2019-03-27 22:56:20

标签: docker .net-core

我有一个简单的.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可以正常工作,并且可以无缝获取字符串中的更改。

所以现在我试图在一个容器中运行它,为此我添加了一个简单的dockerfile

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} / Settings:/ app / Settings myimage

对于Windows机器,它的用法略有不同(甚至尝试映射到/ app / out / Settings都没有运气)

很乐意听到一些无法解决问题的原因

谢谢

0 个答案:

没有答案