# Makefile untuk mengelola Docker commands .PHONY: help build up down restart logs clean dev prod dev-build dev-up dev-down dev-logs # Color codes untuk output yang lebih menarik GREEN := \033[0;32m YELLOW := \033[1;33m RED := \033[0;31m NC := \033[0m # No Color # Default target help: @echo "$(GREEN)Available commands:$(NC)" @echo "$(YELLOW)Production:$(NC)" @echo " build - Build all Docker images" @echo " up - Start all services" @echo " down - Stop all services" @echo " restart - Restart all services" @echo " logs - Show logs for all services" @echo " clean - Remove all containers and volumes" @echo " prod - Start production environment" @echo "" @echo "$(YELLOW)Development (dengan Air hot reload):$(NC)" @echo " dev-build - Build development images" @echo " dev-up - Start development environment dengan hot reload" @echo " dev-down - Stop development environment" @echo " dev-logs - Show development logs" @echo " dev-clean - Clean development environment" @echo " dev-restart- Restart development environment" @echo "" @echo "$(YELLOW)Utilities:$(NC)" @echo " app-logs - Show only app logs" @echo " db-logs - Show only database logs" @echo " status - Check service status" @echo " shell - Execute bash in app container" @echo " psql - Execute psql in postgres container" @echo " redis-cli - Execute redis-cli in redis container" # Production Commands build: @echo "$(GREEN)Building production images...$(NC)" docker compose build --no-cache up: @echo "$(GREEN)Starting production services...$(NC)" docker compose up -d down: @echo "$(RED)Stopping production services...$(NC)" docker compose down restart: @echo "$(YELLOW)Restarting production services...$(NC)" docker compose restart logs: @echo "$(GREEN)Showing production logs...$(NC)" docker compose logs -f clean: @echo "$(RED)Cleaning production environment...$(NC)" docker compose down -v --remove-orphans docker system prune -f docker volume prune -f prod: @echo "$(GREEN)Starting production environment...$(NC)" docker compose up -d # Development Commands (dengan Air hot reload) dev-build: @echo "$(GREEN)Building development images dengan Air...$(NC)" docker compose -f docker-compose.dev.yml build --no-cache dev-up: @echo "$(GREEN)Starting development environment dengan Air hot reload...$(NC)" docker compose -f docker-compose.dev.yml up -d @echo "$(GREEN)Development services started!$(NC)" @echo "$(YELLOW)API Server: http://localhost:7000$(NC)" @echo "$(YELLOW)PostgreSQL: localhost:5433$(NC)" @echo "$(YELLOW)Redis: localhost:6378$(NC)" @echo "$(YELLOW)pgAdmin: http://localhost:8080 (admin@rijig.com / admin123)$(NC)" @echo "$(YELLOW)Redis Commander: http://localhost:8081$(NC)" @echo "" @echo "$(GREEN)✨ Hot reload is active! Edit your Go files and see changes automatically ✨$(NC)" dev-down: @echo "$(RED)Stopping development services...$(NC)" docker compose -f docker-compose.dev.yml down dev-logs: @echo "$(GREEN)Showing development logs...$(NC)" docker compose -f docker-compose.dev.yml logs -f dev-clean: @echo "$(RED)Cleaning development environment...$(NC)" docker compose -f docker-compose.dev.yml down -v --remove-orphans docker system prune -f dev-restart: @echo "$(YELLOW)Restarting development services...$(NC)" docker compose -f docker-compose.dev.yml restart # Development utilities dev-app-logs: @echo "$(GREEN)Showing development app logs...$(NC)" docker compose -f docker-compose.dev.yml logs -f app dev-db-logs: @echo "$(GREEN)Showing development database logs...$(NC)" docker compose -f docker-compose.dev.yml logs -f postgres dev-shell: @echo "$(GREEN)Accessing development app container...$(NC)" docker compose -f docker-compose.dev.yml exec app sh dev-status: @echo "$(GREEN)Development service status:$(NC)" docker compose -f docker-compose.dev.yml ps # Shared utilities app-logs: docker compose logs -f app db-logs: docker compose logs -f postgres status: docker compose ps shell: docker compose exec app sh psql: docker compose exec postgres psql -U postgres -d apirijig_v2 redis-cli: docker compose exec redis redis-cli # Rebuild and restart app only app-rebuild: docker compose build app docker compose up -d app # View real-time resource usage stats: docker stats # Quick development setup (recommended) dev: @echo "$(GREEN)Setting up complete development environment...$(NC)" make dev-build make dev-up