Asp.net Docker Aspnet核心设置物理目录路径
我正在尝试在docker容器中运行aspnet核心应用程序。我与物理文件提供程序有问题 在我的application startup.cs中,我使用以下代码为一个物理文件提供程序创建映射,并使用别名映射Asp.net Docker Aspnet核心设置物理目录路径,asp.net,docker,asp.net-core,docker-compose,Asp.net,Docker,Asp.net Core,Docker Compose,我正在尝试在docker容器中运行aspnet核心应用程序。我与物理文件提供程序有问题 在我的application startup.cs中,我使用以下代码为一个物理文件提供程序创建映射,并使用别名映射 app.UseFileServer(new FileServerOptions { FileProvider = new PhysicalFileProvider("G:\\Work\\LMS\\lms-data"), Requ
app.UseFileServer(new FileServerOptions
{
FileProvider = new PhysicalFileProvider("G:\\Work\\LMS\\lms-data"),
RequestPath = new PathString("/lms-data"),
EnableDirectoryBrowsing = false
});
现在我的docker文件是
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
ENV ASPNETCORE_ENVIRONMENT=Development
ENV DOTNET_USE_POLLING_FILE_WATCHER=1
WORKDIR /app
EXPOSE 5000
EXPOSE 5001
COPY ["SharedKernal/SharedKernal.csproj", "SharedKernal/"]
COPY ["LMS.Entities/LMS.Entities.csproj", "LMS.Entities/"]
COPY ["LMS.Core/LMS.Core.csproj", "LMS.Core/"]
COPY ["LMS.Infrastructure/LMS.Infrastructure.csproj", "LMS.Infrastructure/"]
COPY ["LMS.Web/LMS.Web.csproj", "LMS.Web/"]
RUN dotnet restore "LMS.Web/LMS.Web.csproj"
RUN mkdir /lms-data
COPY . .
WORKDIR "/app/LMS.Web"
CMD [ "/bin/bash","-c","dotnet restore && dotnet watch run" ]
我的docker编写文件是:
version: "3.4"
services:
lmsapp:
image: lmsapp
container_name: lmsappv1
build:
context: .
dockerfile: Dockerfile
working_dir: "/app/LMS.Web"
volumes:
- ".:/app"
ports:
- "5000:5000"
- "5001:5001"
networks:
- mongo_network
mongodb:
image: mongo
container_name: mongo_db
networks:
- mongo_network
ports:
- "27017:27017"
networks:
mongo_network:
driver: bridge
现在,当我在运行docker compose build之后运行命令docker compose up时
我收到以下错误
System.ArgumentException: The path must be absolute. (Parameter 'root')
at Microsoft.Extensions.FileProviders.PhysicalFileProvider..ctor(String root, ExclusionFilters filters)
at Microsoft.Extensions.FileProviders.PhysicalFileProvider..ctor(String root)
at LMS.Web.Startup.Configure(IApplicationBuilder app, IWebHostEnvironment env) in /app/LMS.Web/Startup.cs:line 130
如何解决此错误?
当我运行docker compose up时,我面临的另一个问题是它总是还原包。如何避免这种情况?