Docker + jenkins 로 spring boot CI/CD 구축하기 - 1
Ubuntu - Jenkins Docker 컨테이너 구축하기
1. Jenkins Docker 이미지 다운로드 및 실행sudo docker run -d --name jenkins -p 8080:8080 jenkins/jenkins 2. ip:8080으로 젠킨스 접속 3. 패스워드 등록- 아래 명령어를 입력 후 해당 패스워드를 입력해준다.sudo docker
soyeon-story.tistory.com
* 도커 사용 전 배포 방식
1. jenkins에서 Git 레포지토리 연결
2. gradlew로 프로젝트 빌드 + .jar 파일 생성
3. .jar 파일을 원격 Ubuntu 서버로 전송
4. 원격 Ubuntu 서버에서 .jar 파일을 실행 (.sh 로 작성)
이전 방식에서 도커 컨테이너를 실행하는 방식으로 정리해보려고 한다.
1. git hub access 토큰 발급
- 우측 상단 프로필 > settings > Developer Settings > Personal access token > Tokens(Classic) > Generate new token
> Generate new token (classic)
- repo 와 admin:repo_hook을 선택 후 생성한다.
( repo : 레포지토리에 대한 읽기/쓰기 접근 admin:repo_hook : 웹훅(webhook) 설정 및 관리 )
- 생성된 토큰은 따로 저장해놓는다. (최초에만 확인가능하다)
2. Credentials 만들기
- Dashboard > Jenkins 관리 > Credentials 에서 Add creadntials 버튼을 클릭한다.
- Username에는 github ID, Password에는 git에서 발급받은 access token을 적어준다.
ID는 해당 토큰을 구분할 수 있게 적어주면 된다.
3. Gradle 설정
- Dashboard > Jenkins 관리 > Tools 에서 grale 버전을 선택하고 저장한다.
개발중인 springboot 프로젝트에서 사용하는 gradle 8.10을 선택하였다.
4. CI 스크립트 작성
1)
- 파이프라인으로 생성 후 Build Triggers > GitHub hook trigger for GITScm polling을 선택해준다
* it SCM(소스 코드 관리)와 GitHub 웹훅을 사용하여 코드가 변경될 때 Jenkins에서 자동으로 빌드를 시작할 수 있도록 설정
2) Pipeline > Pipeline script 작성
- Pipeline Syntax를 선택한다.
- git: Git 선택 후 Repository URL, Branch, 앞에서 등록한 Credentials를 선택해준 후 "Generate Pipeline Script" 버튼을 선택하면 스크립트가 생성된다.
- script 창에 아래와 같이 입력해준다.
pipeline {
agent any
tools {
gradle 'gradle'
}
stages {
stage('저장소 복제') {
steps {
{복사한 내용}
}
}
stage('권한 설정') { // 실행 권한 부여
steps {
sh 'chmod +x ./gradlew'
}
}
stage('빌드') {
steps {
sh "./gradlew clean build"
}
}
}
}
- 여기까지 저장 후 젠킨스를 실행시켜본다. .jar 생성이 확인이 가능하다.
// jenkins 컨테이너 접속
docker exec -it jenkins bash
// .jar 파일 경로
cd /var/jenkins_home/workspace/[프로젝트명]/build/libs