Невозможно загрузить dll Docker для Windows или Linux - PullRequest
0 голосов
/ 05 января 2019

Запуск dotnetCore 2.2 У меня есть зависимость clr.dll в моей библиотеке .Logic. Этот clr.dll вызывает unmanaged.dll, который я не могу загрузить в качестве зависимости, и вместо этого мне нужно просто скопировать, чтобы сделать корзину таким образом.

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
  </PropertyGroup>

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

  <ItemGroup>
    <Reference Include="CLR">
      <HintPath>..\Dependencies\NonNuget\CLR.dll</HintPath>
    </Reference>
  </ItemGroup>

  <ItemGroup>
    <None Update="unmanaged.dll">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
  </ItemGroup>

</Project>

мой файл докера выглядит так:

   #Depending on the operating system of the host machines(s) that will build or run the containers, the image specified in the FROM statement may need to be changed.
#For more information, please see https://aka.ms/containercompat

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

FROM microsoft/dotnet:2.2-sdk-nanoserver-1803 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"]

** Когда я запускаю api вне докера, он работает нормально. **

Когда я создаю образ докера и запускаю API, я получаю

System.DllNotFoundException: невозможно загрузить DLL 'unmanaged.dll'

Я предположил, что файл каким-то образом не был включен в мой образ докера, но когда я запускаю docker exec -it myapp, я вижу, что файл присутствует

         146 appsettings.Development.json
         105 appsettings.json
    **3,426,680 unmanaged.dll**
     239,429 myApp.Api.deps.json
      13,824 myApp.Api.dll
       2,696 myApp.Api.pdb
         252 myApp.Api.runtimeconfig.dev.json
         224 myApp.Api.runtimeconfig.json
       1,188 myApp.logic.deps.json
       5,120 myApp.logic.dll
         632 myApp.logic.pdb
       1,459 myApp.Models.deps.json
       4,608 myApp.Models.dll
         708 myApp.Models.pdb
       **5,120 clr.dll**

Я мог бы действительно воспользоваться некоторыми советами, так как я очень плохо знаком с докером и не уверен, куда идти дальше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...