Docker로 Jenkins 설치하기: 단계별 가이드
2024.09.30 - [데브옵스/Docker] - Ubuntu에 Docker 설치 Ubuntu에 Docker 설치1. 들어가며1.1 Docker 란?Docker는 애플리케이션을 개발, 배포, 실행하기 위한 오픈소스 플랫폼입니다. 컨테이너라는 격리된
bigdwarf.blog
1. 들어가며
지속적 통합(Continuous Integration, CI)은 현대 소프트웨어 개발에서 필수적인 프로세스입니다. CI를 통해 개발자들은 코드 변경사항을 주기적으로 통합하고 자동화된 빌드와 테스트를 수행하여 소프트웨어의 품질을 지속적으로 유지할 수 있습니다. 이번 글에서는 Jenkins와 GitHub을 연동하여 빌드까지 하는 방법을 설명합니다. 이를 통해 코드 변경 시 자동으로 빌드 및 테스트를 수행 할 수있어 개발 프로세스의 효율성을 크게 높일 수 있습니다.
2. Jenkins와 GitHub 연동 하기
2.1 GitHub 자격 증명 추가 GitHub Repository에서 Token 발급
- Github → 우측 상단 유저 아이콘 → Settings → Developer settings → Personal access tokens → Tokens (classic)
- 아래 화면과 같은 페이지에서 Generate new token (Classic) 클릭
- 토큰 이름을 설정 후 repo, admin_hook 체크 후 Generate token 클릭
- 아래 화면과 같이 토큰을 확인 하실 수 있습니다.
- 발급 받은 token은 다시 볼 수 없기에 따로 보관 해두시길 바랍니다.
2.2 Jenkins Plugin 설치
- Dashboard → Jenkins 관리 → Plugins → Available plugins
- GitHub Integration Plugin 설치
- Generic Webhook Trigger Plugin 설치
- GitHub API Plugin 설치
- 이 글에 선 GitHub API Plugin 미리 설치가 되어있습니다.
- 설치가 진행되고 완료되면 Jenkins를 재시작 바랍니다.
2.3 Jenkins Credentials 생성
- Dashboard → Jenkins 관리 → Credentials
- Stores scoped to Jenkins → Store (System) → (global) 클릭
- Add Credentials 클릭
- Username : GitHub 아이디
- Password : 발급 받은 GitHub token
- ID : Credentials
- Description : 설명 (옵션)
- 위내용을 작성 후 Create 클릭
2.4 Jenkins Pipeline 설정
- Pipeline 생성 후 Pipeline 명 → 구성(Configuration)
- General → GitHub project → Project url 작성
- Build Triggers → GitHub hook trigger for GITScm polling 체크
- Repository URL : 자동 배포하려는 GitHub Repository URL
- Credentials : Github의 Webhook을 통해 빌드하기 위해 생성한 Credentials 선택
- Branch Specifier : 가져오려는 프로젝트에 Branch
- Script Path : 프로젝트 루트 기준 Jenkinsfile의 위치
- 위 내용을 작성 한 뒤 저장 클릭
2.5 파이프라인 스크립트(Jenkinsfile) 작성
- 프로젝트 내 루트에 Jenkinsfile 생성 후 아래 내용 저장 (원하는 위치 지정 가능합니다.)
- 이 글에서는 Spring Boot Gradle 프로젝트로 진행했습니다.
pipeline {
agent any
stages {
stage('Clone Repository') {
steps {
git url: 'https://github.com/ssongjunu/movie-search-app.git', branch: 'main'
}
}
stage('Build') {
steps {
// gradlew 파일에 실행 권한 부여 후 빌드
sh 'chmod +x ./gradlew'
sh './gradlew clean build'
}
}
stage('Test') {
steps {
// Gradle 테스트 실행
sh './gradlew test'
}
}
}
post {
success {
echo 'Build and tests were successful!'
}
failure {
echo 'Build or tests failed.'
}
}
}
2.6 GitHub Repository Webhooks 설정
- GitHub Repository → Settings → Webhooks → Add webhook
- Payload URL : http://JenkinsURL/github-webhook/
- Content type : application/json
- 위내용 입력 후 Add webhook 클릭
2.7 빌드 테스트 진행
- 지금 빌드 클릭
- Build 콘솔 확인
3. 마치며
Jenkins와 GitHub의 연동은 처음에는 복잡해 보일 수 있지만 일단 설정이 완료되면 개발 워크플로우를 크게 개선할 수 있습니다. 또한 Docker를 활용한 Jenkins 구축은 설치와 관리의 편의성을 높여줍니다. 앞으로 CI를 어 CD(Continuous Delivery 또는 Deployment)까지 확장하여 전체 개발 파이프라인을 자동화하는 것을 고려해볼 수 있습니다. 이는 소프트웨어 제공 속도를 더욱 높이고 운영 효율성을 개선하는 데 도움이 될 것입니다. CI/CD 도구와 방법론은 계속해서 발전하고 있으므로 최신 트렌드와 베스트 프랙티스를 지속적으로 학습하고 적용하는 것이 중요합니다. Jenkins와 GitHub을 시작으로 여러분의 개발 프로세스를 지속적으로 개선해 나가시기 바랍니다.
'데브옵스 > CICD' 카테고리의 다른 글
[Docker] Jenkins와 GitHub 연동하기: 지속적 배포(Continuous Deployment, CD) (4) | 2024.10.21 |
---|---|
Docker로 Jenkins 설치하기: 단계별 가이드 (0) | 2024.10.04 |