# ============================================================================== # SERVICE LIFECYCLE (Docker: start/stop/restart/logs per service) # ============================================================================== .PHONY: start-service stop-service restart-service logs-service start-service: ## [MID] Start a specific service (usage: make start-service SERVICE=backend-api) @if [ -z "$(SERVICE)" ]; then \ $(ECHO_CMD) "${RED}❌ Please specify SERVICE=name${NC}"; \ exit 1; \ fi @$(ECHO_CMD) "${BLUE}🚀 Starting $(SERVICE)...${NC}" @docker compose -f $(COMPOSE_PROD) up -d $(SERVICE) 2>/dev/null || \ $(MAKE) -s start-local-service SERVICE=$(SERVICE) @$(ECHO_CMD) "${GREEN}✅ $(SERVICE) started.${NC}" stop-service: ## [MID] Stop a specific service (usage: make stop-service SERVICE=backend-api) @if [ -z "$(SERVICE)" ]; then \ $(ECHO_CMD) "${RED}❌ Please specify SERVICE=name${NC}"; \ exit 1; \ fi @$(ECHO_CMD) "${YELLOW}🛑 Stopping $(SERVICE)...${NC}" @docker compose -f $(COMPOSE_PROD) stop $(SERVICE) 2>/dev/null || \ $(MAKE) -s stop-local-service SERVICE=$(SERVICE) @$(ECHO_CMD) "${GREEN}✅ $(SERVICE) stopped.${NC}" restart-service: stop-service ## [MID] Restart a specific service (usage: make restart-service SERVICE=backend-api) @$(ECHO_CMD) "${BLUE}🔄 Restarting $(SERVICE)...${NC}" @$(MAKE) -s start-service SERVICE=$(SERVICE) @$(ECHO_CMD) "${GREEN}✅ $(SERVICE) restarted.${NC}" logs-service: ## [MID] Show logs for a service (usage: make logs-service SERVICE=backend-api) @if [ -z "$(SERVICE)" ]; then \ $(ECHO_CMD) "${RED}❌ Please specify SERVICE=name${NC}"; \ exit 1; \ fi @docker compose -f $(COMPOSE_PROD) logs -f $(SERVICE) 2>/dev/null || \ $(ECHO_CMD) "${YELLOW}Service not running in Docker, check local logs${NC}"