appsettings.json 在 docker 运行 上找不到文件问题
appsettings.json file not found issue on docker run
我正在尝试构建 运行 .Net Core 应用程序的 docker 映像。
这是我到目前为止尝试过的:
- 创建了一个 .Net Core 应用程序(.Net Core 2.2)
使用以下命令发布了应用程序
dotnet publish -c Release
使用以下说明创建了一个 Docker 文件:
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2
COPY myapp/bin/Release/netcoreapp2.2/publish/ app/
ENTRYPOINT ["dotnet", "app/myapp.dll"]
使用以下命令构建 docker 图像
docker build -t planservice -f Dockerfile .
至此,镜像构建成功。但是,当我 运行 图片时,出现如下错误:
C:\app>docker 运行 -it --rm planservice
Unhandled Exception: System.IO.FileNotFoundException: The configuration file 'appsettings.json' was not found and is not optional. The physical path i
s '/appsettings.json'.
at Microsoft.Extensions.Configuration.FileConfigurationProvider.Load(Boolean reload)
at Microsoft.Extensions.Configuration.FileConfigurationProvider.Load()
at Microsoft.Extensions.Configuration.ConfigurationRoot..ctor(IList`1 providers)
at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build()
at myapp.Program.GetConfiguration() in C:\app\MFPServices\myapp\Program.cs:line 64
at myapp.Program.Main(String[] args) in C:\app\MFPServices\myapp\Program.cs:line 16
根据@Jawad 的建议,我修改了 Docker 文件以导航到 /app 文件夹。
appsettings.js 应该出现在 运行 的当前位置。
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2
COPY myapp/bin/Release/netcoreapp2.2/publish/ app/
WORKDIR /app
COPY . .
ENTRYPOINT ["dotnet", "myapp.dll"]
现在,它工作正常。
因为区分大小写造成的
尝试命令:
docker exec -it <container number>
cp appsettings.json AppSettings.json
我正在尝试构建 运行 .Net Core 应用程序的 docker 映像。
这是我到目前为止尝试过的:
- 创建了一个 .Net Core 应用程序(.Net Core 2.2)
使用以下命令发布了应用程序
dotnet publish -c Release
使用以下说明创建了一个 Docker 文件:
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 COPY myapp/bin/Release/netcoreapp2.2/publish/ app/ ENTRYPOINT ["dotnet", "app/myapp.dll"]
使用以下命令构建 docker 图像
docker build -t planservice -f Dockerfile .
至此,镜像构建成功。但是,当我 运行 图片时,出现如下错误:
C:\app>docker 运行 -it --rm planservice
Unhandled Exception: System.IO.FileNotFoundException: The configuration file 'appsettings.json' was not found and is not optional. The physical path i
s '/appsettings.json'.
at Microsoft.Extensions.Configuration.FileConfigurationProvider.Load(Boolean reload)
at Microsoft.Extensions.Configuration.FileConfigurationProvider.Load()
at Microsoft.Extensions.Configuration.ConfigurationRoot..ctor(IList`1 providers)
at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build()
at myapp.Program.GetConfiguration() in C:\app\MFPServices\myapp\Program.cs:line 64
at myapp.Program.Main(String[] args) in C:\app\MFPServices\myapp\Program.cs:line 16
根据@Jawad 的建议,我修改了 Docker 文件以导航到 /app 文件夹。 appsettings.js 应该出现在 运行 的当前位置。
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2
COPY myapp/bin/Release/netcoreapp2.2/publish/ app/
WORKDIR /app
COPY . .
ENTRYPOINT ["dotnet", "myapp.dll"]
现在,它工作正常。
因为区分大小写造成的
尝试命令:
docker exec -it <container number>
cp appsettings.json AppSettings.json