Я пытаюсь запустить ядро приложения pnet в docker контейнере. У меня проблемы с провайдером физических файлов.
В моем файле startup.cs приложения я использую следующий код для провайдера физических файлов и сопоставляю его с псевдонимом
app.UseFileServer(new FileServerOptions
{
FileProvider = new PhysicalFileProvider("G:\\Work\\LMS\\lms-data"),
RequestPath = new PathString("/lms-data"),
EnableDirectoryBrowsing = false
});
Now My 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 - составлять после запуска docker -компонентная сборка
Я получаю следующую ошибку
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, всегда восстанавливает пакеты. Как этого избежать?