Spaces:
Sleeping
Sleeping
| # ----------------------- | |
| # FastAPI Backend Deployment to Cloud Run | |
| # ----------------------- | |
| # Exit immediately if a command exits with a non-zero status | |
| set -e | |
| #----------------------- | |
| # Load environment variables | |
| #----------------------- | |
| if [ ! -f .env ]; then | |
| echo "β .env file not found!" | |
| exit 1 | |
| fi | |
| # Load environment variables from .env file | |
| set -o allexport | |
| source .env | |
| set +o allexport | |
| echo "β Environment variables loaded." | |
| # ----------------------- | |
| # Configuration | |
| # ----------------------- | |
| PROJECT_ID="personal-projects-477710" | |
| SERVICE_NAME="feed-pipeline-fastapi" | |
| REGION="asia-south2" #europe-west1 "europe-west6" | |
| IMAGE_NAME="gcr.io/$PROJECT_ID/$SERVICE_NAME" | |
| # ----------------------- | |
| # Set project | |
| # ----------------------- | |
| echo "π§ Setting GCP project to $PROJECT_ID..." | |
| gcloud config set project "$PROJECT_ID" | |
| # ----------------------- | |
| # Enable required APIs | |
| # ----------------------- | |
| echo "π§ Enabling required GCP services..." | |
| gcloud services enable \ | |
| cloudbuild.googleapis.com \ | |
| run.googleapis.com \ | |
| containerregistry.googleapis.com | |
| # ----------------------- | |
| # Build and push Docker image | |
| # ----------------------- | |
| echo "π³ Building and pushing Docker image..." | |
| gcloud builds submit --config cloudbuild_fastapi.yaml \ | |
| --substitutions=_SERVICE_NAME=$SERVICE_NAME | |
| # ----------------------- | |
| # Deploy to Cloud Run | |
| # ----------------------- | |
| echo "π Deploying $SERVICE_NAME to Cloud Run..." | |
| gcloud run deploy "$SERVICE_NAME" \ | |
| --image "$IMAGE_NAME" \ | |
| --platform managed \ | |
| --region "$REGION" \ | |
| --allow-unauthenticated \ | |
| --memory 2.5Gi \ | |
| --cpu 1 \ | |
| --timeout 180 \ | |
| --concurrency 2 \ | |
| --min-instances 0 \ | |
| --max-instances 2 \ | |
| --execution-environment gen2 \ | |
| --cpu-boost \ | |
| --set-env-vars HF_HOME=/tmp/huggingface \ | |
| --set-env-vars HUGGING_FACE__API_KEY=$HUGGING_FACE__API_KEY \ | |
| --set-env-vars QDRANT__API_KEY=$QDRANT__API_KEY \ | |
| --set-env-vars QDRANT__URL=$QDRANT__URL \ | |
| --set-env-vars QDRANT__COLLECTION_NAME=$QDRANT__COLLECTION_NAME \ | |
| --set-env-vars QDRANT__DENSE_MODEL_NAME=$QDRANT__DENSE_MODEL_NAME \ | |
| --set-env-vars QDRANT__SPARSE_MODEL_NAME=$QDRANT__SPARSE_MODEL_NAME \ | |
| --set-env-vars OPENROUTER__API_KEY=$OPENROUTER__API_KEY \ | |
| --set-env-vars OPIK__API_KEY=$OPIK__API_KEY \ | |
| --set-env-vars OPIK__PROJECT_NAME=$OPIK__PROJECT_NAME \ | |
| --set-env-vars "^@^ALLOWED_ORIGINS=$ALLOWED_ORIGINS@" \ | |
| # Log the allowed origins | |
| echo "β Allowed origins set to: $ALLOWED_ORIGINS" | |
| # ----------------------- | |
| # Capture the deployed service URL and update BACKEND_URL | |
| #----------------------- | |
| SERVICE_URL=$(gcloud run services describe $SERVICE_NAME --region=$REGION --format='value(status.url)') | |
| echo "Deployment complete!" | |
| echo "Service URL: $SERVICE_URL" | |
| # # ----------------------- | |
| # # Update BACKEND_URL dynamically | |
| # # ----------------------- | |
| # echo "π Updating BACKEND_URL to $SERVICE_URL..." | |
| # gcloud run services update "$SERVICE_NAME" \ | |
| # --region "$REGION" \ | |
| # --update-env-vars BACKEND_URL="$SERVICE_URL" | |
| # echo "β BACKEND_URL updated successfully." | |