FROM 192.168.100.120:8418/fengling/dotnet/aspnet:10.0 AS base
USER $APP_UID
WORKDIR /app
EXPOSE 8080

FROM 192.168.100.120:8418/fengling/dotnet/sdk:10.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src

# Copy Directory.Build.props and Directory.Packages.props for central package management
COPY ["Directory.Build.props", "./"]
COPY ["Directory.Packages.props", "./"]
COPY ["NuGet.Config", "./"]

# Copy project file and restore dependencies
COPY ["src/Fengling.Console.csproj", "src/"]
RUN dotnet restore "src/Fengling.Console.csproj"

# Copy source code and build
COPY . .
WORKDIR "/src/src"
RUN dotnet build "./Fengling.Console.csproj" -c $BUILD_CONFIGURATION -o /app/build

FROM build AS publish
RUN dotnet publish "./Fengling.Console.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Fengling.Console.dll"]