CI\CD

Github, Jenkins, Docker를 활용한 CI/CD - 1

KJihun 2025. 5. 17. 18:22
728x90

 

기본 세팅 

 

 

github 토큰 발급

  • Settings -> Developer settings -> Personal access tokens -> Tokens (classic)

 

 

필요한 권한 설정 후 생성

 

Docker 설치

 

Windows 11에 Docker Desktop 설치하기_2024.11

목표Windows 11에 Docker Desktop 설치하기Docker 사용해보기 오랜만에 Docker설치하려고 하니 Docker 설치 UI가 바뀌어 2024.11.05 기준 다시 정리해보았습니다. 이번 정리에는 Docker 이미지 사용 예제도 함께

herojoon-dev.tistory.com

 

Docker 로 Jenkins 설치

 

docker로 jenkins 설치

1. Jenkins를 Docker 이미지로 pulldocker image pull jenkins/jenkins:jdk17 2. DockerfileFROM jenkins/jenkins:jdk17USER rootRUN apt-get update &&\ apt-get upgrade -y &&\ # 빌드가 완료된 프로젝트를 Jenkins(컨테이너) 외부의 서버에서

developerhun.tistory.com

 

ngrok (로컬에서 jenkins 사용 시) 설치

 

Ngrok 설치 및 사용법

Ngrok 설치 및 사용법

velog.io

 

 

실행순서

1. Docker로 Jenkins 실행

 

 

2. (로컬에서 진행 시) ngrok 으로 Jenkins 외부 포트번호를 실행

2-1.  설치한 ngrok.exe 실행

2-2.   ngrok http 8888 입력

 

2-3.  정상적으로 실행되는지 확인(localhost:8888)

2-4. Forwarding 주소 복사(https://6df0-112-221-225-162.ngrok-free.app)

 

 

3. CI/CD를 실행할 github repository로 이동

3-1. setting → git webhook → add webhook 클릭

 

 

3-2

  • Payload URL : {{ngrok에서 복사했던 Forwarding 주소}}/github-webhook/
  • Content type : Application/json
  • Update webhook 클릭

 

 

 

 

4. 정상적으로 연결이 되었다면 localhost:8888 접속

4-1. 최초 접속 시 비밀번호가 필요하다.

  • cmd → cat + 붉은색 경로 를 입력한다

 

 

4-2. 정상적으로 로그인이 되었다면 위와 같은 선택지가 나오는데 install suggetsted plugins 클릭

  • 설치가 완료될 때 까지 기다린다.

 

4-3. 설치가 완료 되면 메인 화면이 나오게 될텐데, 아래 같이 클릭하여 필요한 플러그인을 설치한다

  • 추가적으로 설치한 플러그인
    • Dark Theme
      • Jenkins UI를 다크모드 테마로 변경해준다.
      • 브라우저나 OS 테마에 맞춰 다크 테마 자동 적용 가능.
    • Generic Webhook Trigger Plugin
      • HTTP 요청으로부터 JSON/XML 데이터를 추출해 Jenkins 빌드를 트리거한다.
      • GitHub, GitLab, Bitbucket, Jira 등 다양한 서비스와 연동 가능.
    • Email Extension Plugin
      • 기본 이메일 플러그인을 확장하여 이메일 알림을 세밀하게 설정할 수 있다.
      • 빌드 결과별 조건, 수신자 지정, 이메일 내용 커스터마이징 지원.
    • Copy Artifact Plugin
      • 다른 프로젝트에서 생성된 빌드 산출물을 복사하여 사용할 수 있게 한다.
      • 멀티 프로젝트 빌드 환경에서 아티팩트 공유에 유용.
    • GitHub Integration Plugin
      • Jenkins와 GitHub 간 연동 기능 제공.
      • 웹훅, PR 상태 표시, 빌드 트리거 등 GitHub 중심 워크플로우 지원.
    • Gradle Plugin
      • Jenkins에서 Gradle 빌드를 직접 실행할 수 있도록 한다.
      • Gradle 스크립트 기반 빌드 자동화에 사용.
    • HTML Publisher plugin
      • HTML 형식의 리포트를 Jenkins 빌드 결과 페이지에 게시할 수 있다.
      • 테스트 리포트, 커버리지 리포트 등 시각적 결과 제공에 활용.
    • LDAP Plugin
      • LDAP 서버를 이용한 사용자 인증 기능 추가.
      • 사내 LDAP 기반 계정 연동 및 권한 관리에 필수.
    • PAM Authentication plugin
      • Unix PAM(Pluggable Authentication Module) 인증 지원.
      • Linux/Unix 시스템 계정으로 Jenkins 로그인 가능.
    • Theme Manager
      • 사용자 및 글로벌 테마를 추가/관리할 수 있는 플러그인.
      • UI 커스터마이징에 사용.
    • Workspace Cleanup Plugin
      • 빌드 시작 전 작업공간을 자동으로 정리해 준다.
      • 이전 빌드 산출물 삭제 등 깨끗한 빌드 환경 유지.

 

 

4-4. credentials 추가

 

 

 

 

자세한 방법은 아래의 블로그 참조

 

 

[CI/CD] Jenkins - Github 연동하기(Git Personal Access Token)

Git Personal Access Token 발급하기 깃허브에 접속해서 [Profile] - [Settings] - [Developer settings] - [Personal access tokens] 탭에 들어가서 [Generate new token]을 선택해줍니다. token에 대한 설명, 만료 기간과 토큰에 대

seosh817.tistory.com

 

 

[Jenkins] AWS EC2에 SSH 로 배포하기 (.pem 파일)

이를 하기에 앞서, Jenkins 관리 > Plugin Manager 에서 Publish Over SSH 를 검색해 설치해줍니다. 플로그인 설치가 완료되었다면, Jenkins 관리 > 시스템 설정 으로 들어가서 Publish over SSH 로 이동합니다. 1) EC2

jeinie-developer.tistory.com

 

 

 

[Jenkins] 서버에 자동 배포하기 위한 Jenkins Credentials SSH 키 등록하기

1. Jenkins의 credintials이란?사용자, 스크립트, 또는 jenkins 자체가 외부 시스템과 안전하게 상호 작용할 수 있도록 인증 정보를 저장하고 관리하는 방법을 의미Jenkins의 인증 정보 관리 시스템은 다양

k-sky.tistory.com

 

 

 

[CI/CD] Jenkins credentials로 application-{secret}.yml 파일 관리

springboot 프로젝트를 Git으로 작업 후 배포를 진행해야 한다.이 과정에서 DB의 설정 정보와 같은 민감한 정보들은 Git에 올라가면 안 되고 보안처리를 해서 배포해야 한다.안전한 배포를 위해 Jenkins

velog.io

 

위 과정이 끝나면 jenkins로 CI/CD를 진행할 수 있게된다.

 

 

'CI\CD' 카테고리의 다른 글

Github, Jenkins, Docker를 활용한 CI/CD - 3  (0) 2025.05.19
Github, Jenkins, Docker를 활용한 CI/CD - 2  (0) 2025.05.17
docker로 jenkins 설치  (0) 2025.05.09
docker란?, docker 사용방법  (0) 2025.04.24