Docker As pnet core Настройка физического пути к каталогу - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь запустить ядро ​​приложения 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, всегда восстанавливает пакеты. Как этого избежать?

...