From 84f946340402c42624a9818ac4734bb16f42d471 Mon Sep 17 00:00:00 2001 From: masoud Date: Sat, 6 Dec 2025 15:15:56 +0000 Subject: [PATCH] Fix: Use standard VS Dockerfile pattern with correct build context --- .gitea/workflows/kub-deploy.yml | 41 +++++-------------------- src/BackOffice.BFF.WebApi/Dockerfile | 45 ++++++++++++++-------------- 2 files changed, 31 insertions(+), 55 deletions(-) diff --git a/.gitea/workflows/kub-deploy.yml b/.gitea/workflows/kub-deploy.yml index 5900d67..c8bba84 100644 --- a/.gitea/workflows/kub-deploy.yml +++ b/.gitea/workflows/kub-deploy.yml @@ -1,4 +1,4 @@ -name: Build and Deploy to Kubernetes +name: Build and Deploy on: push: @@ -10,43 +10,17 @@ env: IMAGE_NAME: admin/backoffice-bff jobs: - build-and-deploy: + build: runs-on: ubuntu-latest container: image: docker:latest options: --privileged - env: - HTTP_PROXY: http://proxyuser:87zH26nbqT2@46.249.98.211:3128 - HTTPS_PROXY: http://proxyuser:87zH26nbqT2@46.249.98.211:3128 - NO_PROXY: localhost,127.0.0.1,gitea-svc,194.5.195.53,10.0.0.0/8 steps: - - name: Install git - run: apk add --no-cache git + - name: Checkout code + uses: actions/checkout@v4 - - name: Clone repo + - name: Start Docker daemon run: | - git clone --depth 1 --branch kub-stage http://gitea-svc:3000/admin/BackOffice.BFF.git . - - - name: Start Docker daemon with insecure registry - run: | - mkdir -p /etc/docker - cat > /etc/docker/daemon.json << 'DAEMON' - { - "insecure-registries": ["194.5.195.53:30080", "gitea-svc:3000"] - } - DAEMON - mkdir -p ~/.docker - cat > ~/.docker/config.json << 'CONF' - { - "proxies": { - "default": { - "httpProxy": "http://proxyuser:87zH26nbqT2@46.249.98.211:3128", - "httpsProxy": "http://proxyuser:87zH26nbqT2@46.249.98.211:3128", - "noProxy": "localhost,127.0.0.1,gitea-svc,194.5.195.53,10.0.0.0/8" - } - } - } - CONF dockerd & for i in $(seq 1 30); do docker info >/dev/null 2>&1 && break || sleep 2 @@ -55,8 +29,9 @@ jobs: - name: Build Docker Image run: | - cd src/BackOffice.BFF.WebApi - docker build -t ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }} \ + cd src + docker build -f BackOffice.BFF.WebApi/Dockerfile \ + -t ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }} \ -t ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest \ --build-arg HTTP_PROXY=http://proxyuser:87zH26nbqT2@46.249.98.211:3128 \ --build-arg HTTPS_PROXY=http://proxyuser:87zH26nbqT2@46.249.98.211:3128 \ diff --git a/src/BackOffice.BFF.WebApi/Dockerfile b/src/BackOffice.BFF.WebApi/Dockerfile index 8a2b8e5..f8547fd 100644 --- a/src/BackOffice.BFF.WebApi/Dockerfile +++ b/src/BackOffice.BFF.WebApi/Dockerfile @@ -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"]