как заставить докер включать ядро ​​статического содержимого wwwroot aspnet core - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь включить файл swagger.json в мой образ докера.Я использую ядро ​​aspnet 2.2. Когда я запускаю свое приложение локально, оно берет файл swagger.json, находящийся в wwwroot.когда я создаю свой образ докера и запускаю его, swagger запускается, но не находит .json, поэтому он просто выдает ошибку.Я очень новичок в докере.Я должен отметить, что он также не нашел файл test.gif, который я также поместил в wwwroot.Я что-то упустил в файле Docker?Я определенно хочу включить файл .json в мой образ.

dockerfile:

        FROM microsoft/dotnet:2.2-aspnetcore-runtime AS base
    WORKDIR /app
    EXPOSE 80
    EXPOSE 443

    FROM microsoft/dotnet:2.2-sdk AS build
    WORKDIR /src
    COPY ["myApp.Api/myApp.Api.csproj", "myApp.Api/"]
    COPY ["myApp.logic/myApp.logic.csproj", "myApp.logic/"]
    COPY ["myApp.Models/myApp.Models.csproj", "myApp.Models/"]
    RUN dotnet restore "myApp.Api/myApp.Api.csproj"
    COPY . .
    WORKDIR "/src/myApp.Api"
    RUN dotnet build "myApp.Api.csproj" -c Release -o /app

    FROM build AS publish
    RUN dotnet publish "myApp.Api.csproj" -c Release -o /app

    FROM base AS final
    WORKDIR /app
    COPY --from=publish /app .
    ENTRYPOINT ["dotnet", "myApp.Api.dll"]

csproj файл:

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
    <DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
    <UserSecretsId></UserSecretsId>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
    <DocumentationFile></DocumentationFile>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" />
    <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />
    <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.0.2105168" />
    <PackageReference Include="Swashbuckle.AspNetCore" Version="4.0.1" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\myApp.logic\myApp.logic.csproj" />
  </ItemGroup>

  <ItemGroup>
    <Content Update="wwwroot\swagger.json">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
  </ItemGroup>

</Project>

команда docker

docker run -it -p 5001:80 myapp:latest
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...