У меня проблема при создании образа приложения *. 1012 * Core на Docker. В основном на рисунке вы можете видеть, что это DLL-файл, который я добавил в качестве ссылки в моем проекте. В то время как обычные IIS-проекты создаются и работают без сбоев, при попытке создать образ выдается следующая ошибка. Насколько я понимаю docker не может найти DLL. Я использую сервер Linux Docker.
Более того, если я запускаю Docker с "Desktop Docker", он работает гладко, но если я создаю изображение с использованием "Docker Terminal", возникает ошибка ниже.
Build FAILED.
/usr/share/dotnet/sdk/2.1.803/Microsoft.Common.CurrentVersion.targets(2106,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "xxxxxx.Data.Core". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. [/src/abcproject.Voucher.MySql/abcproject.Voucher.MySql.csproj]
Repository/SqlRepository.cs(1,7): error CS0246: The type or namespace name 'xxxxxx' could not be found (are you missing a using directive or an assembly reference?) [/src/abcproject.Voucher.MySql/abcproject.Voucher.MySql.csproj]
UnitOfWork/UnitOfWork.cs(1,7): error CS0246: The type or namespace name 'xxxxxx' could not be found (are you missing a using directive or an assembly reference?) [/src/abcproject.Voucher.MySql/abcproject.Voucher.MySql.csproj]
UnitOfWork/UnitOfWork.cs(2,7): error CS0246: The type or namespace name 'xxxxxx' could not be found (are you missing a using directive or an assembly reference?) [/src/abcproject.Voucher.MySql/abcproject.Voucher.MySql.csproj]
UnitOfWork/UnitOfWork.cs(13,31): error CS0246: The type or namespace name 'IUnitOfWork' could not be found (are you missing a using directive or an assembly reference?) [/src/abcproject.Voucher.MySql/abcproject.Voucher.MySql.csproj]
UnitOfWork/UnitOfWork.cs(30,16): error CS0246: The type or namespace name 'IRepository<>' could not be found (are you missing a using directive or an assembly reference?) [/src/abcproject.Voucher.MySql/abcproject.Voucher.MySql.csproj]
Repository/SqlRepository.cs(16,43): error CS0246: The type or namespace name 'RepositoryBase' could not be found (are you missing a using directive or an assembly reference?) [/src/abcproject.Voucher.MySql/abcproject.Voucher.MySql.csproj]
Repository/SqlRepository.cs(16,59): error CS0246: The type or namespace name 'IRepository<>' could not be found (are you missing a using directive or an assembly reference?) [/src/abcproject.Voucher.MySql/abcproject.Voucher.MySql.csproj]
UnitOfWork/UnitOfWork.cs(18,22): error CS0246: The type or namespace name 'RepositoryBase' could not be found (are you missing a using directive or an assembly reference?) [/src/abcproject.Voucher.MySql/abcproject.Voucher.MySql.csproj]
1 Warning(s)
8 Error(s)
Time Elapsed 00:00:15.67
The command '/bin/sh -c dotnet build "abcproject.Voucher.API.csproj" -c Release -o /app/build' returned a non-zero code: 1
Ниже Dockerfile
:
FROM mcr.microsoft.com/dotnet/core/aspnet:2.1-stretch-slim AS base
WORKDIR /app
EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:2.1-stretch AS build
WORKDIR /src
COPY ["abcproject.Voucher.API/abcproject.Voucher.API.csproj","abcproject.Voucher.API/"]
COPY ["abcproject.Voucher.Service/abcproject.Voucher.Service.csproj","abcproject.Voucher.Service/"]
COPY ["abcproject.Common/abcproject.Common.csproj", "abcproject.Common/"]
COPY ["abcproject.Voucher.MySql/abcproject.Voucher.MySql.csproj","abcproject.Voucher.MySql/"]
COPY ["abcproject.Voucher.Domain/abcproject.Voucher.Domain.csproj", "abcproject.Voucher.Domain/"]
RUN dotnet restore "abcproject.Voucher.API/abcproject.Voucher.API.csproj"
COPY . .
WORKDIR "/src/abcproject.Voucher.API"
RUN dotnet build "abcproject.Voucher.API.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "abcproject.Voucher.API.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "abcproject.Voucher.API.dll"]
Это команда, которую я запускаю для создания образа:
docker build -t myimage -f "abcproject.Voucher.API/Dockerfile" .