Skip to content

Commit 2f9921d

Browse files
committed
feature: 배포 스크립트 고도화
1 parent 16819d7 commit 2f9921d

File tree

2 files changed

+140
-9
lines changed

2 files changed

+140
-9
lines changed

run-docker-prune.sh

+70
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
#!/bin/bash
2+
# 스크립트 권한: chmod +x run.sh
3+
4+
# 색상 정의
5+
GREEN='\033[0;32m'
6+
RED='\033[0;31m'
7+
NC='\033[0m' # No Color
8+
YELLOW='\033[1;33m'
9+
10+
# 에러 핸들링 함수
11+
handle_error() {
12+
echo -e "${RED}Error occurred in script at line $1${NC}" >&2
13+
exit 1
14+
}
15+
16+
# 에러 발생시 handle_error 함수 호출
17+
trap 'handle_error $LINENO' ERR
18+
19+
# 진행상황 출력 함수
20+
print_step() {
21+
echo -e "\n${GREEN}===================================${NC}"
22+
echo -e "${YELLOW}$1${NC}"
23+
echo -e "${GREEN}===================================${NC}"
24+
}
25+
26+
# Docker 설치 확인
27+
check_docker() {
28+
if ! command -v docker &> /dev/null; then
29+
echo -e "${RED}Docker가 설치되어 있지 않습니다.${NC}"
30+
exit 1
31+
fi
32+
}
33+
34+
# 사용자 확인
35+
confirm_action() {
36+
echo -e "${RED}Warning: This will remove all unused Docker images and system resources.${NC}"
37+
echo -e "${YELLOW}Are you sure you want to continue? (y/N)${NC}"
38+
read -r response
39+
if [[ ! "$response" =~ ^[Yy]$ ]]; then
40+
echo "Operation cancelled."
41+
exit 0
42+
fi
43+
}
44+
45+
# Docker 정리 작업 수행
46+
perform_cleanup() {
47+
print_step "1. Removing all unused Docker images..."
48+
docker image prune -af
49+
50+
print_step "2. Performing system cleanup..."
51+
docker system prune -af --volumes
52+
53+
print_step "Cleanup completed successfully!"
54+
55+
# 정리 후 상태 표시
56+
echo -e "\n${GREEN}Current Docker status:${NC}"
57+
docker system df
58+
}
59+
60+
# 메인 실행 로직
61+
main() {
62+
set -e # 스크립트 실행 중 오류 발생 시 종료
63+
64+
check_docker
65+
confirm_action
66+
perform_cleanup
67+
}
68+
69+
# 스크립트 실행
70+
main

run.sh

+70-9
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,75 @@
1-
# chmod +x run.sh
1+
#!/bin/bash
2+
# 스크립트 권한: chmod +x run.sh
23

3-
set -e # 스크립트 실행 중 오류 발생 시 종료
4+
# 색상 정의
5+
GREEN='\033[0;32m'
6+
RED='\033[0;31m'
7+
NC='\033[0m' # No Color
8+
YELLOW='\033[1;33m'
49

5-
echo "1. 외부 이미지 업데이트 (fe, nginx)..."
6-
docker compose pull fe nginx
10+
# 에러 핸들링 함수
11+
handle_error() {
12+
echo -e "${RED}Error occurred in script at line $1${NC}" >&2
13+
exit 1
14+
}
715

8-
echo "2. 로컬 이미지 빌드 (api)..."
9-
docker compose build api
16+
# 에러 발생시 handle_error 함수 호출
17+
trap 'handle_error $LINENO' ERR
1018

11-
echo "3. 서비스 재시작..."
12-
docker compose up -d
19+
# 진행상황 출력 함수
20+
print_step() {
21+
echo -e "\n${GREEN}===================================${NC}"
22+
echo -e "${YELLOW}$1${NC}"
23+
echo -e "${GREEN}===================================${NC}"
24+
}
1325

14-
echo "모든 작업이 완료되었습니다!"
26+
# Docker 설치 확인
27+
check_docker() {
28+
if ! command -v docker &> /dev/null; then
29+
echo -e "${RED}Docker가 설치되어 있지 않습니다.${NC}"
30+
exit 1
31+
fi
32+
}
33+
34+
# 서비스 중지
35+
stop_services() {
36+
print_step "0. 현재 사용 중 이미지 stop, down"
37+
docker compose stop || true
38+
docker compose down || true
39+
}
40+
41+
# 이미지 업데이트
42+
update_images() {
43+
print_step "1. 외부 이미지 업데이트 (fe, nginx)..."
44+
docker compose pull fe nginx
45+
}
46+
47+
# API 빌드
48+
build_api() {
49+
print_step "2. 로컬 이미지 빌드 (api)..."
50+
docker compose build api
51+
}
52+
53+
# 서비스 시작
54+
start_services() {
55+
print_step "3. 서비스 재시작..."
56+
docker compose up -d
57+
}
58+
59+
# 메인 실행 로직
60+
main() {
61+
set -e # 스크립트 실행 중 오류 발생 시 종료
62+
63+
check_docker
64+
stop_services
65+
update_images
66+
build_api
67+
start_services
68+
69+
print_step "모든 작업이 완료되었습니다! 로그 모니터링을 시작합니다."
70+
sleep 1
71+
docker compose logs -f
72+
}
73+
74+
# 스크립트 실행
75+
main

0 commit comments

Comments
 (0)