File tree 2 files changed +140
-9
lines changed
2 files changed +140
-9
lines changed Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change 1
- # chmod +x run.sh
1
+ #! /bin/bash
2
+ # 스크립트 권한: chmod +x run.sh
2
3
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'
4
9
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
+ }
7
15
8
- echo " 2. 로컬 이미지 빌드 (api)... "
9
- docker compose build api
16
+ # 에러 발생시 handle_error 함수 호출
17
+ trap ' handle_error $LINENO ' ERR
10
18
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
+ }
13
25
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
You can’t perform that action at this time.
0 commit comments