Fix: Use standard VS Dockerfile pattern with correct build context

This commit is contained in:
masoud
2025-12-06 15:15:56 +00:00
parent d9014b0546
commit 84f9463404
2 changed files with 31 additions and 55 deletions

View File

@@ -1,26 +1,27 @@
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
WORKDIR /src
# Copy everything from parent (src) directory
COPY ../ ./
# Now files are at:
# /src/BackOffice.BFF.sln
# /src/BackOffice.BFF.WebApi/BackOffice.BFF.WebApi.csproj
# /src/BackOffice.BFF.WebApi/NuGet.config
# etc.
# Restore using NuGet.config
RUN dotnet restore "BackOffice.BFF.WebApi/BackOffice.BFF.WebApi.csproj" --configfile BackOffice.BFF.WebApi/NuGet.config
# Build and publish
RUN dotnet publish "BackOffice.BFF.WebApi/BackOffice.BFF.WebApi.csproj" -c Release -o /app/publish --no-restore
FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS runtime
FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base
WORKDIR /app
COPY --from=build /app/publish .
ENV ASPNETCORE_URLS=http://+:8080
EXPOSE 8080
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
WORKDIR /src
COPY ["BackOffice.BFF.WebApi/BackOffice.BFF.WebApi.csproj", "BackOffice.BFF.WebApi/"]
COPY ["BackOffice.BFF.WebApi/NuGet.config", "BackOffice.BFF.WebApi/"]
COPY ["BackOffice.BFF.Application/BackOffice.BFF.Application.csproj", "BackOffice.BFF.Application/"]
COPY ["BackOffice.BFF.Infrastructure/BackOffice.BFF.Infrastructure.csproj", "BackOffice.BFF.Infrastructure/"]
COPY ["BackOffice.BFF.Domain/BackOffice.BFF.Domain.csproj", "BackOffice.BFF.Domain/"]
RUN dotnet restore "BackOffice.BFF.WebApi/BackOffice.BFF.WebApi.csproj" --configfile "BackOffice.BFF.WebApi/NuGet.config"
COPY . .
WORKDIR "/src/BackOffice.BFF.WebApi"
RUN dotnet build "BackOffice.BFF.WebApi.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "BackOffice.BFF.WebApi.csproj" -c Release -o /app/publish /p:UseAppHost=false
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENV ASPNETCORE_URLS=http://+:8080
ENTRYPOINT ["dotnet", "BackOffice.BFF.WebApi.dll"]