Jenkins, Docker, gitLab Webhook을 이용한 자동 배포_1편

dgh03207·2022년 5월 14일
1

배포

목록 보기
3/4
post-thumbnail

SpringBoot 백엔드 와 Next.js 프론트를 Jenkins를 이용해서 gitlab에 업로드 될때마다 자동빌드 및 배포를 할 수 있도록 프로그래밍한 내용을 담고 있다.
Nginx로 리버스 프록시와 페이지 리다이렉션을 진행했고, https 세팅까지 진행했다.
삽질끝에 얻은 정보들을 이 배포 시리즈에 최대한 담아봤는데, 많은사람들에게 도움이 되면 좋겠다.😆😍


💡 Jenkins를 이용하여 gitlab에서 webhook 걸기

CICD 과정

  • 개발자가 git에 push
  • gitlab에서 push 할때 자동 빌드(Jenkins)
  • 도커에서 이미지를 빌드시킴
  • 이를 배포....

Jenkins 자동 빌드

자동빌드를 하기위해서는 gitlab에 Webhook을 걸어두어야 한다.

Jenkins Pipeline 생성

Jenkins에 접속까지는 제대로 했다고 생각하고 넘어가겠다.

Jenkins에서 Pipeline 생성

새로운 Item > Pipeline으로 프로젝트 생성

Pipeline 세팅

  • DefinitionPipeline script from SCM
  • SCMGit으로 설정
    • Repositories 세팅은 SSH나 AccessToken 둘중 하나를 선택해서 하면 된다.
      private Repository일때, 이 레포에 대한 접근 권한이 필요하기 때문에, SSH나 AccessToken으로 사용자를 인증해주는 것이라고 생각하면 된다.
      • SSH로 세팅할때,
        • Repository URL git repository로 가서 Clone > Clone with SSH 에서 받은 주소 붙여넣기
        • Credential에 SSH 세팅 > 블로그 참조
      • AccessToken으로 세팅할때,
        • Repository URL git repository로 가서 Clone > Clone with HTTPS 해서 받아온 주소 붙여넣기
        • Credential에 AccessToken 세팅 > 블로그 참조
  • Script PathJenkinsfile
    • default 파일 이름이 Jenkinsfile임.
    • 사용자의 Repository에 Jenkinsfile을 추가하고, 여기에 build 커맨드등을 넣어줄 것이다. 이 부분은 뒤에서 진행할 예정.
  • Branches to build 에서 빌드할 Branch 를 선택한다. 나는 release 를 입력하였다.
    필요에따라서 입력하면되는데, 본인이 배포하고 싶은 버전의 파일이 올라가는 브랜치를 선택하면 되는 것.

Jenkins WebHook 세팅

Jenkins plugin 설치

Jenkins관리 > Plugin관리 에서 밑에 2개의 플러그인을 설치해주자.

  • Gitlab Hook Plugin
  • GitLab Plugin

이것들을 설치해야 Build when a change is pushed to Gitlab~~ 옵션을 JenkinsBuild Trigger 에서 찾을 수 있다.(Jenkins pipeline 프로젝트 생성 참고)

Webhook 세팅

git에 push가 감지되면, Jenkins에서 자동으로 재빌드가 되어야 하기 때문에, Webhook을 통해, git에 push를 했을때, 감지가될 수 있도록 해당부분을 세팅하는 것임.

생성한 아이템(Freestyle project or Pipeline 우리는 pipeline을 위에서 세팅했다.)

  • Build Triggers 에서 Build when a change is pushed~ 옵션을 선택하고, 바로 아래에 나오는 복사해 둔다. (git에 가서 WebhookURL에 저장해야됨)
  • 고급 을 누르면 밑에 Secret token 이 있고, 거기에서 Generate 를 누르면 토큰이 생성된다. 이것도 복사해두자 (git에 가서 secretToken에 저장해야됨)

여기까지 하고 저장하면 Webhook관련하여서 Jenkis에서 할일은 끝났다. 이제 연동할 Gitlab 혹은 Github가서 Webhook 세팅을 마저 해주면 된다.

연동할 Git에 가서 Webhook 세팅

URLSecret token 에 값 입력하고 Add webhook 을 누르면 세팅 완료!

Reference

profile
같이 공부하자!

0개의 댓글