Spaces:
Sleeping
Sleeping
| # syntax=docker/dockerfile:1 | |
| # STAGE 1: Use the pre-built .NET SDK to skip the massive 250MB manual download | |
| FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build | |
| # Quickly install Node.js for the React build | |
| RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \ | |
| && apt-get install -y nodejs \ | |
| && rm -rf /var/lib/apt/lists/* | |
| WORKDIR /src | |
| # Restore and install dependencies | |
| COPY RankingApp.csproj ./ | |
| COPY ClientApp/package*.json ./ClientApp/ | |
| RUN cd ClientApp && npm ci --no-audit --no-fund | |
| # Copy the rest of the code and publish the app | |
| COPY . . | |
| RUN dotnet publish RankingApp.csproj -c Release -o /app/publish /p:UseAppHost=false | |
| # STAGE 2: Lightweight Runtime | |
| FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS runtime | |
| ENV ASPNETCORE_ENVIRONMENT=Production \ | |
| DOTNET_PRINT_TELEMETRY_MESSAGE=false | |
| # Install PHP for your tierapp backend | |
| RUN apt-get update \ | |
| && apt-get install -y --no-install-recommends bash php-cli php-mysql php-curl \ | |
| && rm -rf /var/lib/apt/lists/* | |
| WORKDIR /app | |
| # Copy the compiled .NET/React app and PHP scripts | |
| COPY --from=build /app/publish ./ | |
| COPY tierapp ./tierapp | |
| COPY start.sh ./start.sh | |
| RUN chmod +x ./start.sh | |
| EXPOSE 10000 | |
| CMD ["/app/start.sh"] |