From 2bbb1ba4c738e23cbe4cf8c8d42de93f467a5dc7 Mon Sep 17 00:00:00 2001 From: masoodafar-web Date: Thu, 29 Jan 2026 22:04:31 +0330 Subject: [PATCH] chore: Update production workflow to use Nexus registry (no proxy needed) - Changed Dockerfile base images to use 194.5.195.53:32082 (Nexus) - Updated workflow to use docker-sshpass image from Nexus - Removed HTTP_PROXY/HTTPS_PROXY dependencies - Changed deploy method to SSH instead of kubeconfig - Registry: 194.5.195.53:30080 (Gitea internal) - K8S Server: 45.149.79.127 (Production) --- .gitea/workflows/prod-deploy.yml | 67 +++++++++++++------------------- src/BackOffice/Dockerfile | 4 +- 2 files changed, 28 insertions(+), 43 deletions(-) diff --git a/.gitea/workflows/prod-deploy.yml b/.gitea/workflows/prod-deploy.yml index c072aeb..106ef3f 100644 --- a/.gitea/workflows/prod-deploy.yml +++ b/.gitea/workflows/prod-deploy.yml @@ -6,55 +6,47 @@ on: - production env: - REGISTRY: gitea-svc:3000 - EXTERNAL_REGISTRY: git.foursat.afrino.co + REGISTRY: 194.5.195.53:30080 IMAGE_NAME: admin/backoffice + K8S_SERVER: 45.149.79.127 jobs: build-and-deploy: runs-on: ubuntu-latest container: - image: docker:latest + image: 194.5.195.53:32082/docker-sshpass: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,45.149.79.127,194.5.195.53,10.0.0.0/8 steps: - - name: Install dependencies - run: | - apk add --no-cache git curl - curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" - chmod +x kubectl - mv kubectl /usr/local/bin/ - - name: Start Docker daemon run: | mkdir -p /etc/docker cat > /etc/docker/daemon.json << 'DAEMON' { - "insecure-registries": ["git.foursat.afrino.co", "gitea-svc:3000"] + "insecure-registries": ["194.5.195.53:30080", "194.5.195.53:32082"] } 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 + echo "🚀 Starting Docker daemon..." dockerd & - for i in $(seq 1 30); do docker info >/dev/null 2>&1 && break || sleep 2; done - + + for i in $(seq 1 90); do + if docker info >/dev/null 2>&1; then + echo "✅ Docker daemon is ready (attempt $i)" + docker version + break + else + echo "⏳ Waiting for Docker daemon... (attempt $i/90)" + sleep 2 + fi + done + + if ! docker info >/dev/null 2>&1; then + echo "❌ Docker daemon failed to start" + exit 1 + fi + - name: Checkout code run: | git clone --depth 1 --branch production http://gitea-svc:3000/admin/BackOffice.git . - git log -1 --format="%H %s" - name: Build Docker Image run: | @@ -62,22 +54,15 @@ jobs: docker build -f BackOffice/Dockerfile \ -t ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }} \ -t ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:prod \ - -t ${{ env.EXTERNAL_REGISTRY }}/${{ env.IMAGE_NAME }}:prod \ - --build-arg HTTP_PROXY=http://proxyuser:87zH26nbqT2@46.249.98.211:3128 \ - --build-arg HTTPS_PROXY=http://proxyuser:87zH26nbqT2@46.249.98.211:3128 \ . - name: Push to Registry run: | - echo "87zH26nbqT" | docker login ${{ env.REGISTRY }} -u admin --password-stdin + echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login ${{ env.REGISTRY }} -u admin --password-stdin docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }} docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:prod - echo "87zH26nbqT" | docker login ${{ env.EXTERNAL_REGISTRY }} -u admin --password-stdin - docker push ${{ env.EXTERNAL_REGISTRY }}/${{ env.IMAGE_NAME }}:prod - + - name: Deploy to Production run: | - mkdir -p ~/.kube - echo "${{ secrets.KUBECONFIG_PROD }}" | base64 -d > ~/.kube/config - kubectl rollout restart deployment/backoffice || echo "Deployment not found" - kubectl rollout status deployment/backoffice --timeout=5m || echo "Rollout pending" + sshpass -p "${{ secrets.K8S_SSH_PASSWORD }}" ssh -o StrictHostKeyChecking=no root@${{ env.K8S_SERVER }} \ + "kubectl rollout restart deployment/backoffice && kubectl rollout status deployment/backoffice --timeout=5m" || echo "Deployment pending" diff --git a/src/BackOffice/Dockerfile b/src/BackOffice/Dockerfile index c837bd8..0fe90e4 100644 --- a/src/BackOffice/Dockerfile +++ b/src/BackOffice/Dockerfile @@ -1,4 +1,4 @@ -FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build +FROM 194.5.195.53:32082/dotnet/sdk:9.0 AS build WORKDIR /src # Copy NuGet config and project file @@ -16,7 +16,7 @@ WORKDIR "/src/BackOffice" RUN dotnet publish "BackOffice.csproj" -c Release -o /app/publish # Runtime stage - nginx for Blazor WebAssembly -FROM nginx:alpine AS final +FROM 194.5.195.53:32082/library/nginx:alpine AS final WORKDIR /usr/share/nginx/html # Remove default nginx files