-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstart-dev.sh
More file actions
executable file
Β·146 lines (126 loc) Β· 4.46 KB
/
start-dev.sh
File metadata and controls
executable file
Β·146 lines (126 loc) Β· 4.46 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
#!/bin/bash
# Build-Up Backend κ°λ° νκ²½ μμ μ€ν¬λ¦½νΈ
set -e # μλ¬ λ°μ μ μ€λ¨
echo "π Build-Up Backend κ°λ° νκ²½μ μμν©λλ€..."
echo ""
# μμ μ μ
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color
# β
Docker Compose λ²μ κ°μ§
if command -v docker-compose &> /dev/null; then
COMPOSE_CMD="docker-compose"
elif docker compose version &> /dev/null; then
COMPOSE_CMD="docker compose"
else
echo -e "${RED}β Docker Composeκ° μ€μΉλμ΄ μμ§ μμ΅λλ€.${NC}"
echo "μ€μΉ λͺ
λ Ή:"
echo " sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y"
exit 1
fi
echo -e "${BLUE}π§© Docker Compose λͺ
λ Ήμ΄ κ°μ§λ¨: ${GREEN}${COMPOSE_CMD}${NC}"
echo ""
# .env νμΌ λ‘λ
if [ -f ".env" ]; then
echo -e "${BLUE}π .env νμΌμ λ‘λν©λλ€...${NC}"
while IFS= read -r line || [ -n "$line" ]; do
[[ -z "$line" || "$line" =~ ^[[:space:]]*# ]] && continue
line="${line%%#*}"
line="$(echo "$line" | xargs)"
if [[ "$line" == *"="* ]]; then
export "$line"
fi
done < .env
echo -e "${GREEN}β
νκ²½ λ³μκ° λ‘λλμμ΅λλ€.${NC}"
echo ""
else
echo -e "${YELLOW}β οΈ .env νμΌμ΄ μμ΅λλ€.${NC}"
echo " cp .env.example .env"
echo ""
fi
# Compose νμΌ νμΈ
if [ ! -f "docker-compose.dev.yml" ]; then
echo -e "${RED}β docker-compose.dev.yml νμΌμ΄ μμ΅λλ€.${NC}"
exit 1
fi
# Docker μ€ν μ¬λΆ νμΈ
if ! docker info > /dev/null 2>&1; then
echo -e "${RED}β Dockerκ° μ€ν μ€μ΄ μλλλ€.${NC}"
echo " sudo systemctl start docker"
exit 1
fi
# κΈ°μ‘΄ 컨ν
μ΄λ μ 리
echo -e "${BLUE}π§Ή κΈ°μ‘΄ 컨ν
μ΄λ μ 리 μ€...${NC}"
$COMPOSE_CMD -f docker-compose.dev.yml down 2>/dev/null || true
# MySQLκ³Ό phpMyAdmin μμ
echo -e "${BLUE}π¦ MySQLκ³Ό phpMyAdminμ μμν©λλ€...${NC}"
$COMPOSE_CMD -f docker-compose.dev.yml up -d
# μλΉμ€ λκΈ°
echo -e "${YELLOW}β³ μλΉμ€ μμ λκΈ° μ€...${NC}"
sleep 5
# μν νμΈ
echo -e "${BLUE}π μλΉμ€ μν νμΈ:${NC}"
$COMPOSE_CMD -f docker-compose.dev.yml ps
echo ""
# MySQL μ€λΉ λκΈ°
echo -e "${BLUE}π MySQL μ°κ²°μ νμΈν©λλ€...${NC}"
MAX_RETRIES=30
RETRY_COUNT=0
until $COMPOSE_CMD -f docker-compose.dev.yml exec -T mysql mysqladmin ping -h localhost --silent 2>/dev/null; do
RETRY_COUNT=$((RETRY_COUNT+1))
if [ $RETRY_COUNT -ge $MAX_RETRIES ]; then
echo -e "${RED}β MySQL μμ μκ°μ΄ μ΄κ³Όλμμ΅λλ€.${NC}"
echo "λ‘κ·Έ νμΈ: $COMPOSE_CMD -f docker-compose.dev.yml logs mysql"
exit 1
fi
echo "MySQLμ΄ μμλ λκΉμ§ λκΈ° μ€... ($RETRY_COUNT/$MAX_RETRIES)"
sleep 2
done
echo -e "${GREEN}β
MySQLμ΄ μ€λΉλμμ΅λλ€!${NC}"
echo ""
# Gradle Wrapper μ€ν κΆν νμΈ
if [ ! -x "./gradlew" ]; then
echo -e "${YELLOW}β οΈ gradlew κΆν λΆμ¬ μ€...${NC}"
chmod +x ./gradlew
fi
# νκ²½ μ 보 μΆλ ₯
echo -e "${GREEN}========================================${NC}"
echo -e "${GREEN}π κ°λ° νκ²½μ΄ μ€λΉλμμ΅λλ€!${NC}"
echo -e "${GREEN}========================================${NC}"
echo ""
echo -e "${BLUE}π μλΉμ€ μ μ μ 보:${NC}"
echo " - μ ν리μΌμ΄μ
: http://localhost:8080/api"
echo " - phpMyAdmin: http://localhost:8081"
echo ""
echo -e "${BLUE}π λ°μ΄ν°λ² μ΄μ€:${NC}"
echo " - Host: localhost"
echo " - Port: 3306"
echo " - DB: buildup"
echo " - User: root (λλ ${MYSQL_USER})"
echo ""
echo -e "${BLUE}π νλ‘νμΌ: ${GREEN}dev${NC}"
echo ""
echo -e "${YELLOW}β οΈ μ€μ§νλ €λ©΄ Ctrl+C${NC}"
echo ""
# Spring Boot μ ν리μΌμ΄μ
μ€ν
echo -e "${BLUE}β Spring Boot μ ν리μΌμ΄μ
μ μμν©λλ€...${NC}"
./gradlew bootRun --args='--spring.profiles.active=dev'
# μ’
λ£ μ²λ¦¬
trap cleanup EXIT
cleanup() {
echo ""
echo -e "${YELLOW}π μ ν리μΌμ΄μ
μ’
λ£ μ€...${NC}"
echo -e "${BLUE}Docker 컨ν
μ΄λλ₯Ό μ μ§νμκ² μ΅λκΉ? (y/N)${NC}"
read -t 10 -n 1 -r REPLY || REPLY="N"
echo ""
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo -e "${BLUE}π§Ή Docker 컨ν
μ΄λ μ 리 μ€...${NC}"
$COMPOSE_CMD -f docker-compose.dev.yml down
echo -e "${GREEN}β
μ 리 μλ£${NC}"
else
echo -e "${GREEN}β
컨ν
μ΄λ μ μ§λ¨${NC}"
echo "μλ μ’
λ£: $COMPOSE_CMD -f docker-compose.dev.yml down"
fi
}