FROM mcr.microsoft.com/dotnet/core/sdk:2.2.203-alpine AS build

RUN apk update
RUN apk add --no-cache rsync

WORKDIR /app

# copy csproj and restore as distinct layers
COPY *.sln .
COPY NuGet.config .
COPY Source/Twitch.AuditLogService/*.csproj ./Source/Twitch.AuditLogService/
COPY Source/Twitch.AuditLogService.Web/*.csproj ./Source/Twitch.AuditLogService.Web/
COPY Packages/. ./Packages/

RUN dotnet restore

# copy everything else and build app
COPY Source/. ./Source/
WORKDIR /app/Source/Twitch.AuditLogService.Web

RUN dotnet publish -c Release -o out

FROM mcr.microsoft.com/dotnet/core/aspnet:2.2.4-alpine AS runtime
WORKDIR /app
COPY --from=build /app/Source/Twitch.AuditLogService.Web/out ./
ENTRYPOINT ["dotnet", "Twitch.AuditLogService.Web.dll"]