#!/bin/bash # GuruRMM - Build and Push to Gitea Container Registry # # Usage: ./scripts/build-and-push.sh [version] # Example: ./scripts/build-and-push.sh 0.1.0 # # Prerequisites: # - Docker installed and running # - Logged into Gitea registry: docker login git.azcomputerguru.com set -e # Configuration REGISTRY="git.azcomputerguru.com" OWNER="azcomputerguru" # Your Gitea username/org PROJECT="gururmm" VERSION="${1:-latest}" # Image names SERVER_IMAGE="${REGISTRY}/${OWNER}/${PROJECT}-server" DASHBOARD_IMAGE="${REGISTRY}/${OWNER}/${PROJECT}-dashboard" # Colors for output RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color echo -e "${GREEN}========================================${NC}" echo -e "${GREEN}GuruRMM Build & Push Script${NC}" echo -e "${GREEN}========================================${NC}" echo "" echo -e "Registry: ${YELLOW}${REGISTRY}${NC}" echo -e "Version: ${YELLOW}${VERSION}${NC}" echo "" # Navigate to project root SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(dirname "$SCRIPT_DIR")" cd "$PROJECT_ROOT" # Check if logged into registry echo -e "${YELLOW}Checking registry authentication...${NC}" if ! docker login "${REGISTRY}" --get-login &>/dev/null; then echo -e "${RED}Not logged into ${REGISTRY}${NC}" echo "Please run: docker login ${REGISTRY}" exit 1 fi echo -e "${GREEN}Registry authentication OK${NC}" echo "" # Build server image echo -e "${YELLOW}Building server image...${NC}" docker build \ -t "${SERVER_IMAGE}:${VERSION}" \ -t "${SERVER_IMAGE}:latest" \ -f server/Dockerfile \ ./server echo -e "${GREEN}Server image built successfully${NC}" echo "" # Build dashboard image (if it exists) if [ -f "dashboard/Dockerfile" ]; then echo -e "${YELLOW}Building dashboard image...${NC}" docker build \ -t "${DASHBOARD_IMAGE}:${VERSION}" \ -t "${DASHBOARD_IMAGE}:latest" \ -f dashboard/Dockerfile \ ./dashboard echo -e "${GREEN}Dashboard image built successfully${NC}" echo "" fi # Push images echo -e "${YELLOW}Pushing server image...${NC}" docker push "${SERVER_IMAGE}:${VERSION}" docker push "${SERVER_IMAGE}:latest" echo -e "${GREEN}Server image pushed${NC}" if [ -f "dashboard/Dockerfile" ]; then echo -e "${YELLOW}Pushing dashboard image...${NC}" docker push "${DASHBOARD_IMAGE}:${VERSION}" docker push "${DASHBOARD_IMAGE}:latest" echo -e "${GREEN}Dashboard image pushed${NC}" fi echo "" echo -e "${GREEN}========================================${NC}" echo -e "${GREEN}Build and push complete!${NC}" echo -e "${GREEN}========================================${NC}" echo "" echo "Images pushed:" echo " - ${SERVER_IMAGE}:${VERSION}" echo " - ${SERVER_IMAGE}:latest" if [ -f "dashboard/Dockerfile" ]; then echo " - ${DASHBOARD_IMAGE}:${VERSION}" echo " - ${DASHBOARD_IMAGE}:latest" fi echo "" echo "To deploy on Jupiter, use the docker-compose in deploy/jupiter/"