FROM mcr.microsoft.com/dotnet/runtime-deps:7.0-alpine AS base WORKDIR /app EXPOSE 5000 FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:7.0-alpine AS build ARG TARGETARCH ARG BUILDPLATFORM WORKDIR /src COPY *.csproj . RUN dotnet restore "MauMau-Server.csproj" COPY . . WORKDIR "/src" RUN dotnet build "MauMau-Server.csproj" -c Release -o /app/build -a $TARGETARCH FROM build AS publish RUN dotnet public "MauMau-Server.csproj" -c Release -o /app/publish \ --self-contained true \ /p:PublishTrimmed=true \ /p:PublishSingleFile=true \ -a $TARGETARCH FROM --platform=$BUILDPLATFORM base AS final ARG TARGETARCH ARG BUILDPLATFORM RUN adduser --disabled-password \ --home /app \ --gecos '' dotnetuser && chown -R dotnetuser /app USER dotnetuser WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["./MauMau-Server"]