Skip to content

Conversation

@choes0101
Copy link
Contributor

@choes0101 choes0101 commented May 20, 2025

1. 무슨 이유로 코드를 변경했나요?

EC2 인스턴스에 직접 배포하기 위한 준비 작업을 진행했습니다.
기존 Gradle 기반 프로젝트에서 bootJar 빌드 실패 이슈가 발생하여, Docker 기반 빌드 및 실행 방식으로 대체했습니다.
또한 GitHub Actions + Docker Hub + EC2를 활용한 CI/CD 파이프라인을 구축하고, 자동 배포 흐름을 단계적으로 적용했습니다.

2. 어떤 위험이나 장애를 발견했나요?

  • EC2 내에서 ./gradlew bootJar 실행 시 toolchain 인식 문제로 빌드 실패
  • Amazon Linux 2023 환경에 Java 21은 설치되었으나, Gradle이 해당 JDK를 정상 인식하지 못함
  • Docker multi-stage 빌드 시 base 이미지 문제로 실패 (jdk21 관련 이슈)
  • 초기 GitHub Actions 워크플로우에서 ssh 배포는 성공했으나, 최종 컨테이너 실행 단계는 미완료 상태였음

3. 관련 스크린샷을 첨부해주세요

  • GitHub Actions → CI/CD 워크플로우 실행 기록
GitHub Actions 실행 화면
  • Dockerfile 및 빌드 실패 로그
Docker Build 실패 로그

5/26 수정

  • Docker Hub 이미지
스크린샷 2025-05-26 오후 7 48 40
  • GitHub Secrets 설정
스크린샷 2025-05-26 오후 7 46 21
  • GitHub Actions → CI/CD 워크플로우 성공 기록
스크린샷 2025-05-26 오후 7 38 02
  • EC2에서 docker compose up 이후 컨테이너 실행 및 Spring Boot 애플리케이션 정상 기동 로그
스크린샷 2025-05-26 오후 7 40 57
  • 브라우저 화면(8080 포트)
스크린샷 2025-05-26 오후 7 44 23

4. 완료 사항

  • EC2 인스턴스 생성 및 보안 설정 (Amazon Linux 2023)
  • Java 21, Docker, Git 설치 및 ssh 접근 설정 완료
  • Dockerfile 작성 및 build 테스트 (문제 해결 후 성공)
  • GitHub Actions 워크플로우 작성: .github/workflows/ci-cd.yml
  • GitHub Secrets 등록 EC2_HOST, EC2_USER, EC2_KEY, DOCKER_USERNAME, DOCKER_PASSWORD 등)
  • docker-compose.yml, .env 구성 및 EC2 업로드
  • git push 트리거 시 EC2에 자동 배포 완료

5. 추가 사항

  • 기존 bootJar 빌드 문제는 Docker 컨테이너 내부 빌드 또는 로컬 빌드 후 이미지 생성 방식으로 우회 해결
  • docker-compose 기반 환경 구성 완료 → docker compose up -d로 배포 자동화 가능

closed #96

@choes0101 choes0101 requested review from rootTiket and soyesenna May 20, 2025 14:56
@choes0101 choes0101 self-assigned this May 20, 2025
@choes0101 choes0101 linked an issue May 20, 2025 that may be closed by this pull request
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.

[6주차] 조은성 / [Chore] CI/CD 구축

1 participant