FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
WORKDIR /source

COPY src/GmailCatchallLabeler/GmailCatchallLabeler.csproj src/GmailCatchallLabeler/
RUN dotnet restore src/GmailCatchallLabeler/GmailCatchallLabeler.csproj

COPY src/GmailCatchallLabeler/ src/GmailCatchallLabeler/
RUN dotnet publish src/GmailCatchallLabeler/GmailCatchallLabeler.csproj \
    --configuration Release \
    --no-restore \
    --output /app

FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS final
WORKDIR /app
RUN mkdir /data && chown "$APP_UID:$APP_UID" /data
COPY --from=build --chown=$APP_UID:$APP_UID /app .
USER $APP_UID
VOLUME ["/data"]
EXPOSE 8080
ENTRYPOINT ["dotnet", "GmailCatchallLabeler.dll"]