# Stage 1: Build # Note: Project files specify net10.0, but using .NET 9.0 based on package versions (9.0.9) # Adjust version if needed: 8.0 (LTS), 9.0 (current), or future 10.0 FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS base WORKDIR /app FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build WORKDIR /src # Copy solution file COPY RobotApp.sln . # Copy project files COPY RobotApp/RobotApp.csproj RobotApp/ COPY RobotApp.Client/RobotApp.Client.csproj RobotApp.Client/ COPY RobotApp.Common.Shares/RobotApp.Common.Shares.csproj RobotApp.Common.Shares/ COPY RobotApp.VDA5050/RobotApp.VDA5050.csproj RobotApp.VDA5050/ # Restore dependencies RUN dotnet restore RobotApp.sln # Copy all source files COPY RobotApp/ RobotApp/ COPY RobotApp.Client/ RobotApp.Client/ COPY RobotApp.Common.Shares/ RobotApp.Common.Shares/ COPY RobotApp.VDA5050/ RobotApp.VDA5050/ RUN rm -rf ./RobotApp/RobotApp/bin RUN rm -rf ./RobotApp/RobotApp/obj RUN rm -rf ./RobotApp.Client/RobotApp.Client/bin RUN rm -rf ./RobotApp.Client/RobotApp.Client/obj RUN rm -rf ./RobotApp.Common.Shares/RobotApp.Common.Shares/bin RUN rm -rf ./RobotApp.Common.Shares/RobotApp.Common.Shares/obj RUN rm -rf ./RobotApp.VDA5050/RobotApp.VDA5050/bin RUN rm -rf ./RobotApp.VDA5050/RobotApp.VDA5050/obj # Build the solution WORKDIR /src/RobotApp RUN dotnet build -c Release -o /app/build # Stage 2: Publish FROM build AS publish WORKDIR /src/RobotApp RUN dotnet publish -c Release -o /app/publish /p:UseAppHost=false # Copy published files FROM base AS final WORKDIR /app COPY --from=publish /app/publish ./ # Create directory for database RUN mkdir -p /app/data # Set environment variables #ENV ASPNETCORE_URLS=http://+:8080 ENV ASPNETCORE_ENVIRONMENT=Production # Run the application ENTRYPOINT ["dotnet", "RobotApp.dll"]