Skip to content

Commit 6adb823

Browse files
authored
Infra: 백엔드 환경 구성 개선 (CI / EC2 Redis / docker-compose) (#186) (#187)
* Infra: 도커 컴포즈 환경설정 추가 - MySQL 설정 추가 - redis command 설정 삭제 * Infra: CI 개선 main 브랜치, dev 브랜치 분리 - main 브랜치, redis/Mysql 실행 후, 빌드 & 테스트 진행 - dev 브랜치, redis 실행 후, 빌드 & 테스트 진행
1 parent a4d8484 commit 6adb823

File tree

3 files changed

+58
-5
lines changed

3 files changed

+58
-5
lines changed

.github/workflows/backend-ci.yml

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,11 @@ on:
99
types: [opened, synchronize, reopened]
1010

1111
jobs:
12-
build-and-test:
12+
# --------------------------
13+
# main 브랜치용 build & test
14+
# --------------------------
15+
build-and-test-main:
16+
if: github.base_ref == 'main' # main 브랜치로 PR이 들어올 때만 실행
1317
runs-on: ubuntu-latest
1418

1519
services:
@@ -23,8 +27,9 @@ jobs:
2327
ports:
2428
- 3306:3306
2529
env:
26-
MYSQL_ROOT_PASSWORD: root
30+
MYSQL_ROOT_PASSWORD: root_pass
2731
MYSQL_DATABASE: testdb
32+
# MySQL 헬스체크, MySQL 실행 준비 중인 동안 스프링부트 실행을 방지
2833
options: >-
2934
--health-cmd="mysqladmin ping -h localhost -p$MYSQL_ROOT_PASSWORD"
3035
--health-interval=10s
@@ -52,5 +57,37 @@ jobs:
5257
run: ./gradlew clean build -x test
5358

5459
# Test 실행
60+
- name: Run tests
61+
run: ./gradlew test
62+
63+
# --------------------------
64+
# dev 브랜치용 build & test
65+
# --------------------------
66+
build-and-test-dev:
67+
if: github.base_ref == 'dev' # dev 브랜치로 PR이 들어올 때만 실행
68+
runs-on: ubuntu-latest
69+
70+
services:
71+
redis:
72+
image: redis:7
73+
ports:
74+
- 6379:6379
75+
76+
steps:
77+
- name: Checkout repository
78+
uses: actions/checkout@v4
79+
80+
- name: Set up Java 21
81+
uses: actions/setup-java@v3
82+
with:
83+
distribution: 'temurin'
84+
java-version: '21'
85+
86+
- name: Create .env file
87+
run: echo "${{ secrets.DOT_ENV }}" > .env
88+
89+
- name: Build project
90+
run: ./gradlew clean build -x test
91+
5592
- name: Run tests
5693
run: ./gradlew test

docker-compose.yml

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,29 @@
11
version: "3.9"
22

3+
# 개발환경에서는 redis만 실행하셔도 무관합니다
34
services:
45
redis:
5-
image: redis:6.2
6+
image: redis:7
67
container_name: local-redis
78
ports:
89
- "6379:6379"
910
volumes:
1011
- redis_data:/data
11-
command: ["redis-server", "--appendonly", "yes"]
12+
13+
# 운영환경용 (MySQL)
14+
mysql:
15+
image: mysql:8.0
16+
container_name: local-mysql
17+
environment:
18+
MYSQL_ROOT_PASSWORD: root_pass
19+
MYSQL_DATABASE: testdb
20+
MYSQL_USER: root_user
21+
MYSQL_PASSWORD: root_pass
22+
ports:
23+
- "3306:3306"
24+
volumes:
25+
- mysql_data:/var/lib/mysql
1226

1327
volumes:
14-
redis_data:
28+
redis_data:
29+
mysql_data:

infra/terraform/main.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,7 @@ docker network create common
213213
# redis 설치
214214
docker run -d \
215215
--name redis_1 \
216+
--restart unless-stopped \
216217
--network common \
217218
-p 6379:6379 \
218219
-e TZ=Asia/Seoul \

0 commit comments

Comments
 (0)