72 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
		
		
			
		
	
	
			72 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
|  | #!/bin/bash
 | ||
|  | #ac | ||
|  | # Global Variables | ||
|  | PRJ_NAME="visaapptesting02-front-f" | ||
|  | DOCKER_USER="risadmin_prod" | ||
|  | DOCKER_PASS=$(sv get "risadmin_prod" dockerPassword) | ||
|  | DOCKER_URL="157.66.191.31:3000" | ||
|  | REPO_NAME="visaapptesting02" | ||
|  | GITEA_USER="risadmin_prod" | ||
|  | GITEA_PASS=$(sv get "risadmin_prod" dockerPassword) | ||
|  | GITEA_EMAIL="ganeshk@dekatc.com" | ||
|  | GIT_BRANCH="main" | ||
|  | DOMAIN="157.66.191.31:3000" | ||
|  | CONT_PORT=30167 | ||
|  | TARGET_PORT=80 | ||
|  | PATH_DIR="/data/36238_1743760568650/sureops_deploy/visaapptesting02/sureops/visaapptesting02-front-f/deployment" | ||
|  | DOCKER_TAG="1.0" | ||
|  | MAX_RETRIES=3 | ||
|  | RETRY_DELAY=10 | ||
|  | 
 | ||
|  | # Stop any existing containers with the same name and ports | ||
|  | docker stop "$PRJ_NAME" >/dev/null 2>&1 || true | ||
|  | docker rm "$PRJ_NAME" >/dev/null 2>&1 || true | ||
|  | 
 | ||
|  | # Retry logic for Docker build | ||
|  | build_docker_image() { | ||
|  |     local attempt=1 | ||
|  |     local build_status=1 | ||
|  | 
 | ||
|  |     while [[ $attempt -le $MAX_RETRIES ]]; do | ||
|  |         printf "Attempt %d to build Docker image...\n" "$attempt" | ||
|  | 
 | ||
|  |         DOCKER_BUILDKIT=0 docker build --no-cache \
 | ||
|  |             -t "$DOCKER_URL/$DOCKER_USER/$PRJ_NAME:$DOCKER_TAG" \
 | ||
|  |             --build-arg BUILD_ID="$DOCKER_TAG" \
 | ||
|  |             --build-arg GITEA_USER="$GITEA_USER" \
 | ||
|  |             --build-arg GITEA_PASS="$GITEA_PASS" \
 | ||
|  |             "$PATH_DIR" && build_status=0 && break | ||
|  | 
 | ||
|  |         printf "Docker build failed on attempt %d. Retrying in %d seconds...\n" "$attempt" "$RETRY_DELAY" >&2 | ||
|  |         attempt=$((attempt + 1)) | ||
|  |         sleep "$RETRY_DELAY" | ||
|  |     done | ||
|  | 
 | ||
|  |     return $build_status | ||
|  | } | ||
|  | 
 | ||
|  | # Build Docker image with retry logic | ||
|  | if ! build_docker_image; then | ||
|  |     printf "Build process failed after %d attempts.\n" "$MAX_RETRIES" >&2 | ||
|  |     exit 1 | ||
|  | fi | ||
|  | 
 | ||
|  | # Docker login | ||
|  | docker login --username="$DOCKER_USER" --password="$DOCKER_PASS" "$DOCKER_URL" | ||
|  | 
 | ||
|  | # Tag and push the Docker image | ||
|  | docker tag "$DOCKER_URL/$DOCKER_USER/$PRJ_NAME:$DOCKER_TAG" "$DOCKER_URL/$DOCKER_USER/$PRJ_NAME:latest" | ||
|  | docker push "$DOCKER_URL/$DOCKER_USER/$PRJ_NAME:latest" | ||
|  | docker push "$DOCKER_URL/$DOCKER_USER/$PRJ_NAME:$DOCKER_TAG" | ||
|  | 
 | ||
|  | # Docker logout | ||
|  | docker logout "$DOCKER_URL" | ||
|  | 
 | ||
|  | # Trigger repo update via curl | ||
|  | curl -X GET "http://157.66.191.31:31170/sureops/suredocker/updaterepo?repoName=$REPO_NAME&packageName=$PRJ_NAME" | ||
|  | 
 | ||
|  | # Prune Docker resources | ||
|  | docker network prune -f | ||
|  | docker image prune -f --filter "dangling=true" | ||
|  | docker volume prune -f |