Skip to content

fix: 프로덕션 Docker 배포 Elasticsearch 기동 실패 수정#43

Merged
mike7643 merged 2 commits into
mainfrom
feat/prod-elasticsearch-docker-deploy-fix
May 31, 2026
Merged

fix: 프로덕션 Docker 배포 Elasticsearch 기동 실패 수정#43
mike7643 merged 2 commits into
mainfrom
feat/prod-elasticsearch-docker-deploy-fix

Conversation

@mike7643

@mike7643 mike7643 commented May 31, 2026

Copy link
Copy Markdown
Collaborator

✨ 작업 내용 한 줄 요약

  • main 기준 배포 실패 원인인 Elasticsearch 미기동 문제를 Docker compose/배포 워크플로우에서 복구

🛠️ 작업 내용

  • docker-compose.prod.yml에 Elasticsearch 서비스 추가
  • app 서비스에 ELASTICSEARCH_URIS 기본값(http://elasticsearch:9200) 주입
  • deploy 워크플로우에서 .envELASTICSEARCH_URIS 없을 경우 기본값 자동 추가
  • deploy 시 redis/elasticsearch 선기동 후 ES readiness 확인 뒤 app 기동
  • README에 prod ES 연결 동작 방식 반영

🧠 기술적 의사결정

  • 외부 ES 의존 대신 배포 환경 내 Docker ES 동시 기동으로 초기 연결 실패 제거
  • 앱 기동 전에 ES readiness를 확인해 Health check 타임아웃/재기동 루프 방지

Summary by CodeRabbit

  • New Features

    • Elasticsearch 서비스 통합 추가
  • Documentation

    • 프로덕션 Elasticsearch 연결 설정 가이드 추가
  • Chores

    • 배포 스크립트 개선으로 Elasticsearch 연결 안정성 강화
    • 프로덕션 환경에 Elasticsearch 서비스 및 데이터 영속성 설정 추가

@mike7643 mike7643 requested a review from buddle031 as a code owner May 31, 2026 08:25
@coderabbitai

coderabbitai Bot commented May 31, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 38f76986-d869-445f-8c55-109bbba17166

📥 Commits

Reviewing files that changed from the base of the PR and between ad1eb58 and 6af9a29.

📒 Files selected for processing (4)
  • .github/workflows/deploy.yml
  • README.md
  • docker-compose.prod.yml
  • src/main/resources/application.yaml

📝 Walkthrough

Walkthrough

프로덕션 배포 환경에 Elasticsearch 서비스를 Docker Compose를 통해 통합합니다. 배포 워크플로우는 Elasticsearch 준비 상태를 확인하고, Spring 애플리케이션은 환경 변수를 통해 Elasticsearch URI를 수신합니다.

Changes

Elasticsearch 프로덕션 배포 통합

Layer / File(s) Summary
Elasticsearch 서비스 구성 및 의존성
docker-compose.prod.yml
단일 노드 Elasticsearch 서비스를 추가하고, X-Pack 보안 비활성화, JVM 메모리 옵션을 설정한 뒤 elasticsearch-data 볼륨 마운트와 포트 바인딩을 구성합니다. 애플리케이션 서비스는 depends_onelasticsearch를 추가합니다.
배포 오케스트레이션 및 헬스 확인
.github/workflows/deploy.yml
EC2 배포 시 ELASTICSEARCH_URIS 환경 변수에 기본값(http://elasticsearch:9200)을 설정합니다. Docker Compose 실행을 분리하여 Redis와 Elasticsearch를 먼저 시작한 후, Elasticsearch 9200 포트 응답을 최대 60회 폴링하여 준비 완료를 대기합니다. 실패 시 로그를 덤프하고 배포를 중단하며, 성공 시 애플리케이션을 별도로 시작합니다.
Spring Elasticsearch 설정
src/main/resources/application.yaml
프로덕션 프로파일에 spring.elasticsearch.uris 설정을 추가하여 ELASTICSEARCH_URIS 환경 변수로부터 URI를 주입받도록 구성합니다.
프로덕션 Elasticsearch 연결 문서
README.md
README의 Zimdugo-be 항목에 .env에서 ELASTICSEARCH_URIS 미설정 시 기본값(http://elasticsearch:9200)을 사용한다는 안내를 추가합니다.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

🐰 Elasticsearch가 이제 막 도착했고,
Docker 구성에 우아하게 앉아,
헬스체크 폴링이 느린 시작을 기다리며,
Redis와 함께 조화로운 춤을 춘다네!
프로덕션 배포, 이제 탄탄해! 🌟

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/prod-elasticsearch-docker-deploy-fix

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.

@mike7643 mike7643 merged commit e6c7911 into main May 31, 2026
2 of 3 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