Skip to content

About

GitHub Actions로 컨테이너 이미지 빌드·푸시를 자동화하는 GitOps 앱 레포 (CI)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

gitops-sample-app

GitOps CI/CD 파이프라인 실습 프로젝트의 애플리케이션 레포입니다. 간단한 정적 웹 페이지(Nginx)를 컨테이너로 빌드하고, GitHub Actions로 이미지 빌드·푸시를 자동화합니다.

배포는 별도의 매니페스트 레포(gitops-sample-manifest)와 ArgoCD가 담당합니다. (앱 레포와 배포 레포를 분리하는 GitOps 표준 구조)


전체 아키텍처

[개발자] --- git push ---> [gitops-sample-app] (이 레포)
                                  |
                                  | (GitHub Actions - CI)
                                  v
                     Docker 이미지 빌드 → GHCR에 push
                                  |
                                  v
              [gitops-sample-manifest] (Helm 차트)
                                  |
                                  | (ArgoCD가 Git 변경 감지 - CD)
                                  v
                     kubeadm 클러스터(EC2)에 자동 배포

CI 파이프라인 (GitHub Actions)

main 브랜치에 push하면 .github/workflows/build.yml이 자동 실행됩니다.

  1. 소스 체크아웃
  2. GHCR(GitHub Container Registry) 로그인
  3. Dockerfile로 이미지 빌드
  4. ghcr.io/gyu2001/gitops-sample-app:<커밋SHA> 태그로 push

커밋마다 고유한 SHA를 이미지 태그로 사용해, 어떤 커밋이 어떤 이미지로 배포됐는지 추적 가능하도록 구성했습니다.

구성 파일

파일 역할
index.html 배포할 정적 웹 페이지 (버전 표시)
Dockerfile Nginx 기반 컨테이너 이미지 정의
.github/workflows/build.yml 이미지 빌드·푸시 CI 워크플로우

사용 기술

GitHub Actions Docker GHCR Nginx


버전 관리

  • 이미지 태그: 커밋 SHA (ghcr.io/gyu2001/gitops-sample-app:<SHA>) — 어떤 커밋이 어떤 이미지로 배포됐는지 1:1로 추적
  • 릴리스 태그: 사람이 읽는 버전은 Git 태그(v2.0.0)로 함께 관리

개선할 점

  • 빌드 전 테스트 단계 추가 (Dockerfile 검사, 컨테이너 기동 후 응답 확인)
  • 빌드가 끝나면 배포 레포에 이미지 태그 변경 PR을 자동으로 생성
  • 기능 브랜치와 PR 리뷰를 거쳐 main에 머지하도록 브랜치 보호 규칙 적용

관련 레포

About

GitHub Actions로 컨테이너 이미지 빌드·푸시를 자동화하는 GitOps 앱 레포 (CI)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages