- 오픈소스 자동화 서버
- 빌드,테스트,배포 과정을 코드로 정의해서 자동화
- Pipeline as Code 개념으로 파이프라인 흐름을 Jekinsfile에 저장
- Pipeline as code 개념이란 코드저장소에 함께 버전을 관리하고 (빌드->테스트->배포) 단계를 GUI가 아닌 텍스트 기반 스크립트(코드)로 작성
Jenkinsfile 활용법
0.Jenkinsfile 한 파일만으로 전체 흐름이 정의
1.프로젝트별 루트 디렉터리에 Jenkinsfile 추가
2.Git 웹훅으로 푸시 → Jenkins 파이프라인 실행” 연동
3.Declarative(선언형) 또는 Scripted(스크립트형) 문법 선택
Jenkinsfile의 간단한 예시'
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building...'
}
}
stage('Test') {
steps {
echo 'Testing...'
}
}
stage('Deploy') {
steps {
echo 'Deploying...'
}
}
}
}
stages - 작업단계 (Build->Test->Deploy)
steps - 각 단계에서 실행할 명령들
만약 기존 GUI 방식대로 했다면 일일히 한단계마다 버튼을 눌러서 클릭. 그러나 Pipeline 방식을 통해 언제든 똑같이 재현이 가능하고, 수정도 편리하다는 장점
- 주요 기능
1.지속적 통합(CI): 개발자가 푸시할 때마다 자동 빌드·테스트
2.지속적 배포/CD: 빌드 결과물을 자동으로 배포 환경에 전달
실무에서의 활용 사례
1.코드 푸시 → 자동 빌드
GitHub/GitLab 웹훅(Webhook) 연동
커밋 발생 즉시 mvn clean package·npm install 등 실행
2.컨테이너 이미지 생성·배포
Docker CLI 플러그인 활용
빌드 완료된 애플리케이션을 DockerHub 또는 사내 레지스트리에 자동 푸시
3.테스트 자동화
단위·통합 테스트 스크립트 실행
실패 시 메일·슬랙 알림 전송
4.다단계 배포 파이프라인
DEV → QA → PROD 순차 배포
각 단계별 승인·롤백 옵션
- 한줄 정리
Jenkins는 ‘코드 변경 → 자동 빌드·테스트 → 자동 배포’ 흐름을 쉽고 반복 가능하게 만들어주는 핵심 도구
파이프라인을 코드로 관리하며, 다양한 플러그인으로 거의 모든 개발·배포 시나리오에 대응가능

깃에서 hook하면 수행
-> 변경사항: Eclipse에서 Push하면 Jenkins Trgger를 통해 수행


시행착오 모음집.. 대부분 Git url 세팅 관련된 내용들이다. Jenkins 보안, Git 관련 세팅할때 주의

vagrant@vm6:~$ docker run -d --name ex02Con -p 8081:8081 ex-02-app



ID, Password 보안 관련 설정
Eclipse에서 Push하면 docker hub, github, Jenkins에 동시에 push되는 모습을 확인할 수 있다.



