Jenkins는 오픈소스 자동화 서버로, 소프트웨어 개발과 관련된 다양한 작업을 자동화하기 위해 사용됩니다. 주로 CI/CD(Continuous Integration/Continuous Deployment) 파이프라인을 구축하는 데 활용되며, 개발부터 배포까지의 프로세스를 효율적으로 관리할 수 있도록 도와줍니다.
Jenkins는 CI/CD 파이프라인을 자동화하여 개발 속도와 품질을 동시에 향상시킵니다.
# Ubuntu에서 Jenkins 설치
sudo apt update
sudo apt install openjdk-11-jdk
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt update
sudo apt install jenkins
# Jenkins 시작
sudo systemctl start jenkins
http://<your-server-ip>:8080
접속.Jenkinsfile은 Jenkins Pipeline을 정의하는 코드입니다. Declarative Pipeline의 예제는 다음과 같습니다:
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building...'
sh 'mvn clean package'
}
}
stage('Test') {
steps {
echo 'Testing...'
sh 'mvn test'
}
}
stage('Deploy') {
steps {
echo 'Deploying...'
sh 'scp target/my-app.jar user@server:/path/to/deploy'
}
}
}
}
Jenkins는 Docker와 통합하여 컨테이너 환경에서 빌드와 배포를 실행할 수 있습니다.
# Jenkins 컨테이너 실행
sudo docker run -d -p 8080:8080 -p 50000:50000 --name jenkins \
-v jenkins_home:/var/jenkins_home jenkins/jenkins:lts
pipeline {
agent {
docker {
image 'maven:3.8.1'
}
}
stages {
stage('Build') {
steps {
sh 'mvn clean package'
}
}
}
}
특징 | Jenkins | GitLab CI/CD | CircleCI |
---|---|---|---|
설치 방식 | 자체 호스팅 | GitLab 통합 | 클라우드 기반 |
플러그인 지원 | 매우 풍부 | 제한적 | 제한적 |
사용 편의성 | 초기 설정 복잡 | GitLab과 통합 간편 | 간편 |
확장성 | 높은 확장성 | 제한적 | 제한적 |