58 lines
1.7 KiB
Docker
58 lines
1.7 KiB
Docker
# 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 ./
|
|
|
|
# Set environment variables
|
|
#ENV ASPNETCORE_URLS=http://+:8080
|
|
ENV ASPNETCORE_ENVIRONMENT=Production
|
|
|
|
# Run the application
|
|
ENTRYPOINT ["dotnet", "RobotApp.dll"]
|
|
|