# Tahap 1: Build FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build WORKDIR /src # Salin file proyek COPY ["UserManagement.sln", "./"] COPY ["UserManagement.Api/UserManagement.Api.csproj", "UserManagement.Api/"] RUN dotnet restore # Build aplikasi COPY . . WORKDIR "/src/UserManagement.Api" RUN dotnet build -c Release -o /app/build # Tahap 2: Publish FROM build AS publish RUN dotnet publish -c Release -o /app/publish /p:UseAppHost=false # Tahap 3: Final FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS final WORKDIR /app COPY --from=publish /app/publish . # Konfigurasi Environment & Port ENV ASPNETCORE_URLS=http://+:7860 EXPOSE 7860 # Healthcheck menggunakan sistem internal .NET (tanpa perlu install curl) HEALTHCHECK --interval=30s --timeout=10s --retries=3 \ CMD dotnet --info || exit 1 ENTRYPOINT ["dotnet", "UserManagement.Api.dll"]