티스토리 뷰

728x90
반응형

현재 진행 중인 프로젝트를 개발하면서, 젠킨스와 도커를 이용한 CI/CD를 구성해 보기로 했다.

 

항상 말하듯 자동배포는 설정이 90% 이상이라서 구성하는데 시간이 조금 걸리긴 했지만, 일단은 성공.

 

이 글에서는 개괄적인 파이프라인에 대해 알아보고 시간이 날 때마다 틈틈이 세부사항을 올려봐야겠다.

 

먼저 해당 파이프라인을 그림으로 그리면 아래와 같다.

 

오른쪽에 그려진 프론트엔드 부분을 제외하고, EC2에 서버가 자동배포 되기까지의 파이프라인을 요약한다.

 

그림에 그려진 두 개의 EC2 중 왼쪽을 젠킨스EC2, 오른쪽을 배포EC2라고 부른다.

 

  1. 코드 작성 및 변경사항 (GitHub에) 푸시. 이때 젠킨스EC2에서 실행 중인 젠킨스가 깃허브 웹훅을 이용해 변경사항을 감지하고 변경된 코드를 가져오는 것으로 파이프라인을 시작한다.
  2. 가져온 코드는 빌드(및 테스트)를 거친 뒤 도커 이미지로 빌드된다.
  3. 빌드된 이미지는 도커 허브에 업데이트되고, 배포EC2에 설치된 도커가 이를 내려받는다.
  4. 배포EC2의 도커가 새로 받은 이미지와 함께, 기존에 가지고 있던 Redis 이미지를 컨테이너로 실행한다.

이때 웹훅과 도커 이미지 빌드에 관한 모든 것은 젠킨스에서 설정할 수 있으며,

 

각종 설정과 시크릿을 비롯해 빌드된 이미지와 레디스 이미지를 실행시키는 docker-compose 파일은

 

배포 EC2에 위치시켜야 한다.

 

이렇게 CI/CD를 구성하면 변경사항을 깃허브에 푸시하고 5~6분 이내에 새로운 서버가 올라가거나,

 

에러가 나는 경우 콘솔을 확인할 수 있게 된다.

 

설정까지는 다소 오래 걸리지만 한 번 설정해 두면 너무나 편한 젠킨스.

 

다음 프로젝트에서도 사용해야겠다!

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함