Jenkins와 GitHub Webhooks 작성
GitHub Actions는 GitHub 이벤트에 반응하여 자동화된 작업을 설정할 수 있게 해주는 도구입니다.
반면, Jenkins는 별도의 CI/CD 도구로서, GitHub의 이벤트와 직접적으로 연동되지 않습니다.
따라서 GitHub의 이벤트를 감지하고 그에 따라 Jenkins로 작업 요청을 전송하는 중간 역할이 필요합니다.
GitHub Webhooks 실행 단계
- GitHub Webhook을 설정
- 이벤트 발생 시 GitHub에서 Jenkins 서버로 HTTP 요청을 전송
- Jenkins는 해당 이벤트에 맞는 작업(테스트, 빌드, 배포)을 실행
Docker를 이용한 CI/CD
- 이미지 생성 및 Docker Hub에 업로드
- 개발자가 코드 변경사항을 Git 저장소에 push 하면
CI 도구(예: Jenkins, GitHub Actions, GitLab CI 등)가 이 변경사항을 감지합니다. - CI 도구는 Dockerfile을 사용하여 프로젝트의 Docker 이미지를 생성합니다.
생성된 이미지를 Docker Hub에 push합니다
- 개발자가 코드 변경사항을 Git 저장소에 push 하면
- 이미지를 기반으로 컨테이너를 생성 및 실행
- 서버는 Docker Hub에서 최신 이미지를 pull합니다.
- 서버에서 Docker 이미지를 기반으로 컨테이너를 생성 및 실행하여 프로젝트가 작동하게 합니다.
- 이미지를 갱신하고 컨테이너를 재시작
- 자동화 및 관리이 전체 프로세스는 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 |