FROM microsoft/dotnet:2.1-aspnetcore-runtime-alpine AS base
WORKDIR /app
EXPOSE 80

FROM microsoft/dotnet:2.1-sdk-alpine AS build
WORKDIR /src
COPY ["src/Bailun.Core.ApiGateway/Bailun.Core.ApiGateway.csproj", "src/Bailun.Core.ApiGateway/"]
COPY ["src/Bailun.Core.Service.Core/Bailun.Core.Service.Core.csproj", "src/Bailun.Core.Service.Core/"]
COPY ["src/Bailun.Core.EntityFrameworkCore/Bailun.Core.EntityFrameworkCore.csproj", "src/Bailun.Core.EntityFrameworkCore/"]
COPY ["src/Bailun.Core.Core/Bailun.Core.Core.csproj", "src/Bailun.Core.Core/"]
COPY ["src/Bailun.Core.Extension/Bailun.Core.Extension.csproj", "src/Bailun.Core.Extension/"]
COPY ["src/Bailun.Core.Application/Bailun.Core.Application.csproj", "src/Bailun.Core.Application/"]
RUN dotnet restore "src/Bailun.Core.ApiGateway/Bailun.Core.ApiGateway.csproj"
COPY . .
WORKDIR "/src/src/Bailun.Core.ApiGateway"
RUN dotnet build "Bailun.Core.ApiGateway.csproj" -c Release -o /app

FROM build AS publish
RUN dotnet publish "Bailun.Core.ApiGateway.csproj" -c Release -o /app

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