Всем привет.
У меня есть микросервисы на .net, каждый микросервис содержит в себе 4 проекта (api, logic, infractructure, domain), при этом я решил подключать к микросервисам Core проект, просто подключая его к .sol.
Дальше я сгенерировал Dockerfile с помощью Rider и решил попробовать сбилдить его, но у меня это не получается сделать, постоянно падает ошибка при подключении Core либы, но на других асембли пишет ERROR (именно на тех, которые лежат на уровень выше, чем Dockerfile).
Так выглядит Dockerfile:
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER $APP_UID
WORKDIR /app
EXPOSE 8080
EXPOSE 8081
EXPOSE 10001
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
ARG BUILD_CONFIGURATION=Develop
WORKDIR /src
COPY ["GChain.Identity.Api/GChain.Identity.Api.csproj", "GChain.Identity.Api/"]
COPY ["GChain.Identity.Infrastructure/GChain.Identity.Infrastructure.csproj", "GChain.Identity.Infrastructure/"]
COPY ["GChain.Identity.Logic/GChain.Identity.Logic.csproj", "GChain.Identity.Logic/"]
COPY ["GChain.Identity.Domain/GChain.Identity.Domain.csproj", "GChain.Identity.Domain/"]
COPY ["../Libs/GChain.Core/GChain.Core.csproj", "../Libs/GChain.Core/"]
RUN dotnet restore "GChain.Identity.Api/GChain.Identity.Api.csproj"
COPY . .
WORKDIR "/src/GChain.Identity.Api"
RUN dotnet build "GChain.Identity.Api.csproj" -c $BUILD_CONFIGURATION -o /app/build
FROM build AS publish
ARG BUILD_CONFIGURATION=Develop
RUN dotnet publish "GChain.Identity.Api.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "GChain.Identity.Api.dll"]
В целом, если я помещу асембли (api, logic, infrastructure, domain) на один уровень с Dockerfile, то Error не будет падать, но Core я не могу добавить в ту же директорию, тк его должны использовать и другие микросервисы.
Получается 2 вопроса:
Как правильно подключить ассембли, которые лежат на 1 уровень выше, чем Dockerfile?
Как подключить Core assembly, которыя лежит на 2 уровня выше, при этом ее будут использовать и другие микросервисы. (Core - там просто class library)?
Так выглядит ошибка: