FROM mcr.microsoft.com/dotnet/sdk@sha256:212fe4cb74627d5adf9817a4088906ae3edff1bd853bb27565d4b46731efe61e AS build
RUN apt-get update && apt-get install -y --no-install-recommends gcc libc6-dev && rm -rf /var/lib/apt/lists/*
WORKDIR /src
COPY . .
RUN sh Monero/Native/build-linux.sh && dotnet publish IndexerCore.csproj -c Release -p:NuloraProduction=true -p:RestoreLockedMode=true -o /publish --nologo

FROM mcr.microsoft.com/dotnet/aspnet@sha256:1a48394b6f29d3a32c79d9edecd4abda0ecbe8776d567dbfc4590ed6979c740c
WORKDIR /app
COPY --from=build /publish .
COPY --from=build --chmod=0444 /src/deployment/mainnet/protocol.config.json /app/protocol.config.json
COPY --from=build --chmod=0444 /src/deployment/mainnet/native-runtime.lock.json /app/native-runtime.lock.json
COPY --from=build --chmod=0555 /src/nulo-verifier-runtime/nulo_verify_partial /app/nulo_verify_partial
COPY --from=build --chmod=0555 /src/nulo-verifier-runtime/partial-libs /app/partial-libs
ENV ASPNETCORE_HTTP_PORTS=8080
USER $APP_UID
ENTRYPOINT ["dotnet", "IndexerCore.dll"]
