-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathMakefile
More file actions
164 lines (117 loc) · 5.4 KB
/
Makefile
File metadata and controls
164 lines (117 loc) · 5.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
.PHONY: help \
clean reset-dev reset-prod \
install test lint format \
dev-up dev-down dev-logs dev-shell \
setup-dev setup-prod create-networks \
check-env status health \
prod-up prod-down prod-logs prod-shell
# Default target
help:
@echo " EventDev Frontend - Makefile Commands"
@echo " ====================================="
@echo ""
@awk 'BEGIN {FS = ":.*##"} /^[a-zA-Z_-]+:.*##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 }' $(MAKEFILE_LIST)
@echo ""
@echo " Examples:"
@echo ""
@echo " make dev-up # Start development environment"
@echo " make prod-up # Start production environment"
@echo " make dev-logs # Show development logs"
@echo " make clean # Clean all containers and volumes"
# ------------------------------------------------------------
# Development commands
dev-up: check-env create-networks ## Start development environment
@echo " ✦ Starting development environment..."
@docker compose -f docker-compose.dev.yml up --build -d
@echo " ✓ Development environment started!"
@echo " Frontend: http://localhost:5173"
dev-down: ## Stop development environment
@echo " ✦ Stopping development environment..."
@docker compose -f docker-compose.dev.yml down -v --remove-orphans
@echo " ✓ Development environment stopped!"
dev-logs: ## Show development logs
@echo " ✦ Showing development logs (Press Ctrl+C to exit)..."
@docker compose -f docker-compose.dev.yml logs -f frontend-dev
dev-shell: ## Access development container shell
@docker compose -f docker-compose.dev.yml exec frontend-dev sh
# ------------------------------------------------------------
# Production commands
prod-up: check-env create-networks ## Start production environment
@echo " ✦ Starting production environment..."
@docker compose -f docker-compose.prod.yml up --build -d --remove-orphans
@echo " ✓ Production environment started!"
@echo " Frontend: http://localhost:5173"
prod-down: ## Stop production environment
@echo " ✦ Stopping production environment..."
@docker compose -f docker-compose.prod.yml down --remove-orphans 2>/dev/null || true
@echo " ✓ Production environment stopped!"
prod-logs: ## Show production logs
@echo " ✦ Showing production logs (Press Ctrl+C to exit)..."
@docker compose -f docker-compose.prod.yml logs -f app
prod-shell: ## Access production container shell
@docker compose -f docker-compose.prod.yml exec app sh
# ------------------------------------------------------------
# Utility commands
create-networks: ## Create required networks
@echo " ✦ Checking and creating networks if needed..."
@if ! docker network ls | grep -q eventdev-dev-network; then \
echo " Creating eventdev-dev-network..."; \
docker network create eventdev-dev-network; \
else \
echo " eventdev-dev-network already exists"; \
fi
@if ! docker network ls | grep -q eventdev-prod-network; then \
echo " Creating eventdev-prod-network..."; \
docker network create eventdev-prod-network; \
else \
echo " eventdev-prod-network already exists"; \
fi
clean: ## Clean all containers, images and volumes
@echo " ✦ Cleaning containers and volumes..."
@docker compose -f docker-compose.dev.yml down -v --remove-orphans 2>/dev/null || true
@docker compose -f docker-compose.prod.yml down -v --remove-orphans 2>/dev/null || true
@docker system prune -af
@docker volume prune -f
@echo " ✓ Cleanup completed!"
reset-dev: dev-down clean dev-up ## Reset development environment
reset-prod: prod-down clean prod-up ## Reset production environment
# ------------------------------------------------------------
# Development utilities
install: ## Install dependencies
@echo " ✦ Installing dependencies..."
@docker compose -f docker-compose.dev.yml exec frontend-dev pnpm install
lint: ## Run linter
@echo " ✦ Running linter..."
@docker compose -f docker-compose.dev.yml exec frontend-dev pnpm lint
format: ## Format code
@echo " ✦ Formatting code..."
@docker compose -f docker-compose.dev.yml exec frontend-dev pnpm format
# ------------------------------------------------------------
# Environment setup
setup-dev: ## Setup development environment
@echo " ✦ Setting up development environment..."
@cp .env.dev.example .env
@echo " ✓ .env file created from .env.dev.example"
@echo " Please review and update .env file before running 'make dev-up'"
setup-prod: ## Setup production environment
@echo " ✦ Setting up production environment..."
@cp .env.prod.example .env
@echo " ✓ .env file created from .env.prod.example"
@echo " IMPORTANT: Update API URL and settings in .env before running 'make prod-up'"
check-env: ## Check if .env file exists
@if [ ! -f .env ]; then \
echo " ⚠ .env file not found!"; \
echo " Run 'make setup-dev' or 'make setup-prod' to create it"; \
exit 1; \
fi
# ------------------------------------------------------------
# Monitoring
status: ## Show containers status
@echo " ✦ Development containers:"
@docker compose -f docker-compose.dev.yml ps 2>/dev/null || echo "Development environment not running"
@echo ""
@echo " ✦ Production containers:"
@docker compose -f docker-compose.prod.yml ps 2>/dev/null || echo "Production environment not running"
health: ## Check frontend health
@echo " ✦ Checking frontend health..."
@curl -f http://localhost:5173 && echo "✓ Frontend is healthy!" || echo "⚠ Frontend is not responding"