#!/bin/bash set -e VERSION="${1:-latest}" COMPOSE_FILE="docker-compose.prod.registry.yml" # Colors for output RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color echo -e "${GREEN}๐Ÿš€ Deploying version: ${VERSION}${NC}" echo "" # Check if compose file exists if [ ! -f "$COMPOSE_FILE" ]; then echo -e "${RED}โŒ Compose file not found: ${COMPOSE_FILE}${NC}" echo "Please create it first (see docs/GITEA-DOCKER-REGISTRY.md)" exit 1 fi # Check if logged in if ! docker info | grep -q "Username"; then echo -e "${YELLOW}โš ๏ธ Not logged in to Docker registry${NC}" echo "Please login first:" echo " docker login " exit 1 fi # Update image tags in compose file if using version tags if [ "$VERSION" != "latest" ]; then echo -e "${YELLOW}๐Ÿ“ Updating image tags to v${VERSION}...${NC}" # Create backup cp ${COMPOSE_FILE} ${COMPOSE_FILE}.bak # Replace :latest with :v${VERSION} in image tags sed -i.tmp "s|:latest|:v${VERSION}|g" ${COMPOSE_FILE} rm ${COMPOSE_FILE}.tmp 2>/dev/null || true fi # Pull latest images echo -e "${GREEN}๐Ÿ“ฅ Pulling images...${NC}" docker-compose -f ${COMPOSE_FILE} pull # Deploy echo -e "${GREEN}๐Ÿš€ Starting services...${NC}" docker-compose -f ${COMPOSE_FILE} up -d # Wait a bit for services to start echo -e "${YELLOW}โณ Waiting for services to start...${NC}" sleep 5 # Show status echo -e "${GREEN}๐Ÿ“Š Service status:${NC}" docker-compose -f ${COMPOSE_FILE} ps # Cleanup old images (optional) echo -e "${YELLOW}๐Ÿงน Cleaning up unused images...${NC}" docker image prune -f echo "" echo -e "${GREEN}โœ… Deployment complete!${NC}" echo "" echo "View logs:" echo " docker-compose -f ${COMPOSE_FILE} logs -f" echo "" echo "Check status:" echo " docker-compose -f ${COMPOSE_FILE} ps" echo "" echo "Stop services:" echo " docker-compose -f ${COMPOSE_FILE} down"