Server

Docker + jenkins 로 spring boot CI/CD 구축하기 - 1

so_yeon_- 2024. 10. 30. 15:35
 

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