ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [CI/CD] Jenkins / GitLab / Docker / EC2 연동 (2/2)
    프로젝트/아카이뷰 2024. 1. 31. 21:15
    이번 포스팅에서는 Jenkins 세부 설정과 GitLab과의 연동, 배포까지 진행해보도록 하겠다.

     

    1. GitLab 연동

    • Jenkins 관리에서 System을 누르고 GitLab 설정쪽으로 가서 해당 필드를 채워준다.

     

    2. Credential 등록

    • GitLab과의 연동을 위해 GitLab에서 AccessToken을 발급하고 등록해준다.
    • Kind를 GitLab API token으로 변경 후, API Token 부분에 Access Token을 삽입
    • ID는 GitLab의 아이디를 적어주고 Add를 클릭
    • 다시 돌아가서 credential을 선택

     

    3. Pipeline 작성

    • new item을 누르고 pipeline을 선택

    • push에 대해서만 build를 유발시킬 것이기 때문에 build Triggers에서 위의 그림과 같이 설정을 해준다.

    • 고급 버튼을 누르고 Secret token을 generate를 통해 발급받아 복사해둔다.

    4. webhook 설정

    • GitLab Repo에 들어가서 왼쪽 Settings에 Webhooks 탭을 누른다.
    • Add new webook 버튼을 눌러 위와 같이 설정해준다.
    • URL은 Jenkins의 주소에 /project/{pipeline 설정 시 작성한 이름}을 설정한다.
    • secret token은 위에서 발급한 것을 넣어준다.
    • Trigger의 경우 master branch에 push가 일어나면 발생하도록 설정했다.

    • Test 버튼을 눌러 연결이 잘 되었는 지 확인한다.

    5. NodeJS, Gradle 전역 설치

    • spring boot와 react를 build하기 위해서는 gradle과 nodejs가 필요하다.
    • jenkins관리에서 Tools를 누르고 위의 사진과 같이 node버전과 gradle 버전을 설정한다.
    • 만약, 버전 선택이 아니라 text로 버전을 입력하도록 나와있다면 업데이트 사이트에 문제가 있는 것이다.

    • jenkins 관리에서 pulgins를 누르고 Advenced settings에 들어가서 업데이트 사이트를 https://updates.jenkins.io/update-center.json로 변경해준다.
    • jenkins를 재시작하고 다시 Tools에 들어가서 설정해주면 해결이 된다.

    6. 파이프라인 작성

    • 파이프라인 작성을 위해 item의 구성을 눌러 맨 밑으로 가보면 파이프라인 script를 작성할 수 있다.
    • 파이프라인을 이용해서 git clone, build, deploy를 진행할 수 있다.
    • 우선, git clone을 받아오기 위해서 파이프라인 script를 쉽게 작성할 수 있도록 도와주는 Pipeline Syntax를 눌러보자

    • 위와 같이 입력하고 Generate Pipeline Script를 누르면 위 설정과 맞는 파이프라인 스크립트가 생성될 것이다.

    • 다시 Pipeline script로 돌아와 위와 같이 작성해준다.
    • tools 부분을 보면 아까 Tools에서 설정했던 name을 넣어주면 된다.
    • 이후, git clone, front build, backend build를 이어서 작성해주면 된다.
    • deploy의 경우 front는 build 경로가 nginx에 mount 되어 있기 때문에 추가적인 작업이 필요없다.
    • back의 경우 docker에 올려놓고 있기 때문에 docker 이미지를 다시 생성하고 올려주는 작업을 추가적으로 해야한다.

    docker-compose.yml
    spring boot Dockerfile

    • 위와 같이 설정을 완료하면 배포까지 자동으로 이뤄지게 된다.
Designed by Tistory.