Skip to content

[Fix] healthcheck 를 통해 spring 과 mysql 실행 순서를 맞춤 - #8

Merged
hyew0nn merged 1 commit into
devfrom
fix/cicd-ec2
Feb 13, 2026
Merged

[Fix] healthcheck 를 통해 spring 과 mysql 실행 순서를 맞춤#8
hyew0nn merged 1 commit into
devfrom
fix/cicd-ec2

Conversation

@hyew0nn

@hyew0nn hyew0nn commented Feb 13, 2026

Copy link
Copy Markdown
Owner

📌 변경 내용

  • 무엇을 변경했는지 간단 요약

🛠 작업 상세

  • 구현한 핵심 로직
  • 수정/추가한 기능

✅ 체크 포인트

  • 정상 동작 확인
  • 기존 기능 영향 없음
  • 예외/경계값 처리

📎 참고 사항

  • 관련 이슈 / 고민한 점 / 추후 개선 사항

Summary by CodeRabbit

릴리스 노트

Chores

  • 배포 자동화 도구 버전을 최신 안정 버전으로 업데이트했습니다.
  • 서비스 재시작 정책을 추가하여 장애 발생 시 자동 복구 기능을 강화했습니다.
  • 데이터베이스 헬스 체크 기능을 추가하여 서비스의 가용성과 신뢰성을 개선했습니다.

@coderabbitai

coderabbitai Bot commented Feb 13, 2026

Copy link
Copy Markdown

개요

이 PR은 GitHub Actions 워크플로우에서 scp-action을 v0.1.7 버전으로 고정하고, docker-compose.yaml에 MySQL 헬스체크, 서비스 재시작 정책, 조건부 의존성을 추가합니다.

변경 사항

코호트 / 파일(s) 요약
CI/CD 워크플로우 업데이트
.github/workflows/cd_template.yaml
scp-action 사용 버전을 master에서 v0.1.7로 고정하여 배포 일관성 확보 (2곳 변경).
Docker Compose 안정성 강화
docker-compose.yaml
MySQL에 헬스체크 설정 추가, app/mysql 서비스에 재시작 정책 적용, 앱 서비스의 MySQL/Redis 의존성을 조건부로 변경 (12줄 추가, 2줄 제거).

추정 코드 리뷰 소요 시간

🎯 2 (단순) | ⏱️ ~8분

관련 가능성 있는 PR

  • [Feat] AWS EC2 연결 추가 #7: 동일한 cd_template.yaml 파일의 SCP 배포 단계 및 docker-compose.yaml을 수정하여 본 PR과 관련성이 높음.

축하 시

🐰✨ 마스터 버전을 고정하고,
헬스 체크를 더해주니,
서비스는 더 튼튼해져라~!
재시작도 척척척,
배포는 안전 안전하네! 🚀

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목은 헬스체크를 통해 Spring과 MySQL의 실행 순서를 맞추는 변경사항을 명확하게 설명하고 있으며, 실제 변경 사항(docker-compose.yaml의 healthcheck 추가 및 의존성 조건 설정)과 직접적으로 연결되어 있습니다.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Merge Conflict Detection ✅ Passed ✅ No merge conflicts detected when merging into dev

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/cicd-ec2

No actionable comments were generated in the recent review. 🎉

🧹 Recent nitpick comments
docker-compose.yaml (2)

29-34: mysqladmin ping은 프로세스 응답만 확인하며, 실제 쿼리 가능 상태를 보장하지 않을 수 있습니다.

mysqladmin ping은 MySQL 데몬이 살아있는지만 확인합니다. 초기화 중(grant table 로딩 등)에도 ping이 성공할 수 있어, 실제 사용자 인증 기반 연결이 가능한 상태를 확인하려면 아래와 같이 변경하는 것을 권장합니다.

♻️ 더 견고한 healthcheck 제안
     healthcheck:
-      test: [ "CMD", "mysqladmin", "ping", "-h", "localhost" ]
+      test: ["CMD-SHELL", "mysqladmin ping -h localhost -u$$MYSQL_USER -p$$MYSQL_PASSWORD || exit 1"]
       interval: 5s
       timeout: 3s
       retries: 10
       start_period: 30s

36-40: Redis 서비스에 restart 정책과 healthcheck가 없습니다.

mysql에는 restart: unless-stopped와 healthcheck가 설정되어 있지만, redis에는 둘 다 없습니다. 일관성을 위해 Redis에도 restart 정책을 추가하고, 필요하다면 healthcheck도 고려해 보세요.

♻️ Redis 서비스 개선 제안
   redis:
     image: redis:7
     container_name: mse-redis
     ports:
       - "26379:6379"
+    restart: unless-stopped
+    healthcheck:
+      test: ["CMD", "redis-cli", "ping"]
+      interval: 5s
+      timeout: 3s
+      retries: 5

Redis에도 healthcheck를 추가하면, appdepends_on에서 condition: service_healthy로 변경하여 Redis도 준비된 후 앱이 시작되도록 할 수 있습니다.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@hyew0nn
hyew0nn merged commit 717a6a7 into dev Feb 13, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant