web 개발

Docker와 Jenkins를 이용한 CD/CI 과정 (feat WebHooks)

잼추 2024. 6. 10. 23:45

Jenkins와 GitHub Webhooks 작성

GitHub Actions는 GitHub 이벤트에 반응하여 자동화된 작업을 설정할 수 있게 해주는 도구입니다.

반면, Jenkins는 별도의 CI/CD 도구로서, GitHub의 이벤트와 직접적으로 연동되지 않습니다.

따라서 GitHub의 이벤트를 감지하고 그에 따라 Jenkins로 작업 요청을 전송하는 중간 역할이 필요합니다.



GitHub Webhooks 실행 단계

  1.  GitHub Webhook을 설정
  2. 이벤트 발생 시 GitHub에서 Jenkins 서버로 HTTP 요청을 전송
  3. Jenkins는 해당 이벤트에 맞는 작업(테스트, 빌드, 배포)을 실행

 

Docker를 이용한 CI/CD

  1. 이미지 생성 및 Docker Hub에 업로드
    • 개발자가 코드 변경사항을 Git 저장소에 push 하면
      CI 도구(예: Jenkins, GitHub Actions, GitLab CI 등)가 이 변경사항을 감지합니다.
    • CI 도구는 Dockerfile을 사용하여 프로젝트의 Docker 이미지를 생성합니다.
      생성된 이미지를 Docker Hub에 push합니다
  2.  이미지를 기반으로 컨테이너를 생성 및 실행
    • 서버는 Docker Hub에서 최신 이미지를 pull합니다.
    • 서버에서 Docker 이미지를 기반으로 컨테이너를 생성 및 실행하여 프로젝트가 작동하게 합니다.
  3. 이미지를 갱신하고 컨테이너를 재시작
    • 자동화 및 관리이 전체 프로세스는 Git hooks 또는 CI 도구의 설정에 따라 자동으로 실행됩니다.
    • 서버는 watchtower와 같은 도구를 사용하여 Docker Hub에 새 이미지가 업로드될 때
      자동으로 이미지를 갱신하고 컨테이너를 재시작할 수 있습니다.

'web 개발' 카테고리의 다른 글

데이터베이스 lock  (0) 2024.06.18
트랜젝션 격리수준  (0) 2024.06.16
로드 밸런서와 로드 밸런싱 방식  (0) 2024.06.10
로드밸런싱, NGINX, ELB  (1) 2024.06.10
CI/CD 지속적 통합 및 배포  (0) 2024.06.10