1. 코드 푸쉬 & GitHub Actions 실행
사용자가 main 브랜치에 코드를 푸쉬하면 GitHub Actions의 CI 파이프라인이 시작됩니다.
관련 파일: CICD.yaml
- GitHub Actions는 on: push: branches: [ "main" ]에 의해 트리거됩니다.
- jobs 섹션에서 코드 빌드, 테스트, 도커 이미지 빌드, 배포 등의 작업이 순차적으로 실행됩니다.
2. Build 및 Docker 이미지 생성
- actions/checkout@v3 단계에서 GitHub에서 소스코드를 체크아웃합니다.
- Install JDK 17 단계에서 Java 17 환경을 설정합니다.
- ./gradlew clean build 명령을 통해 Gradle로 프로젝트를 빌드합니다. 이 빌드가 성공하면 .jar 파일이 생성됩니다.
- 도커 이미지 빌드를 위해 docker build 명령이 실행됩니다. 여기서 Dockerfile이 사용됩니다.
관련 파일: Dockerfile
- build/libs/에 있는 .jar 파일이 app.jar로 복사됩니다.
- config/application.properties 파일이 컨테이너 내의 /app/application.properties에 복사됩니다.
- ENTRYPOINT 명령에서 java 실행 시 프로파일(PROFILES)과 환경(ENV) 변수를 지정하여 Spring 애플리케이션이 시작됩니다.
3. Docker 이미지 푸쉬
- Docker 이미지가 빌드되면 docker push 명령으로 해당 이미지를 Docker Hub에 푸쉬합니다.