From 05c378c00b414c8701bee16d78fee0c3ada942ce Mon Sep 17 00:00:00 2001 From: masoud Date: Sat, 6 Dec 2025 15:46:01 +0000 Subject: [PATCH] Fix: Use standard VS Dockerfile pattern with correct build context --- .gitea/workflows/kub-deploy.yml | 41 ++++++--------------------- src/FrontOffice.BFF.WebApi/Dockerfile | 39 ++++++++++++++----------- 2 files changed, 31 insertions(+), 49 deletions(-) diff --git a/.gitea/workflows/kub-deploy.yml b/.gitea/workflows/kub-deploy.yml index 803f8f9..b6b9586 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/frontoffice-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/FrontOffice.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/FrontOffice.BFF.WebApi - docker build -t ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }} \ + cd src + docker build -f FrontOffice.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/FrontOffice.BFF.WebApi/Dockerfile b/src/FrontOffice.BFF.WebApi/Dockerfile index 8ac0009..d4e1f27 100644 --- a/src/FrontOffice.BFF.WebApi/Dockerfile +++ b/src/FrontOffice.BFF.WebApi/Dockerfile @@ -1,20 +1,27 @@ -FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build -WORKDIR /src - -# Copy everything from parent directory (src/) -COPY ../ ./ - -# Restore using NuGet.config in WebApi folder -RUN dotnet restore "FrontOffice.BFF.WebApi/FrontOffice.BFF.WebApi.csproj" --configfile FrontOffice.BFF.WebApi/NuGet.config - -# Build and publish -RUN dotnet publish "FrontOffice.BFF.WebApi/FrontOffice.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 ["FrontOffice.BFF.WebApi/FrontOffice.BFF.WebApi.csproj", "FrontOffice.BFF.WebApi/"] +COPY ["FrontOffice.BFF.WebApi/NuGet.config", "FrontOffice.BFF.WebApi/"] +COPY ["FrontOffice.BFF.Application/FrontOffice.BFF.Application.csproj", "FrontOffice.BFF.Application/"] +COPY ["FrontOffice.BFF.Infrastructure/FrontOffice.BFF.Infrastructure.csproj", "FrontOffice.BFF.Infrastructure/"] +COPY ["FrontOffice.BFF.Domain/FrontOffice.BFF.Domain.csproj", "FrontOffice.BFF.Domain/"] + +RUN dotnet restore "FrontOffice.BFF.WebApi/FrontOffice.BFF.WebApi.csproj" --configfile "FrontOffice.BFF.WebApi/NuGet.config" + +COPY . . +WORKDIR "/src/FrontOffice.BFF.WebApi" +RUN dotnet build "FrontOffice.BFF.WebApi.csproj" -c Release -o /app/build + +FROM build AS publish +RUN dotnet publish "FrontOffice.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", "FrontOffice.BFF.WebApi.dll"]