본문 바로가기
카테고리 없음

[jenkins] pipeline

by Ahngyuho 2025. 6. 22.

젠킨스의 기능을 동작시켜서 빌드/배포하는 방법

 

dashboard > jenkins 관리 클릭 > plugins 클릭 > Available plugins 클릭 > publish over ssh 검색해서 클릭 후 설치

 

docker 검색해서 클릭 후 체크된 것들 설치 

 

플러그인 다 설치되면 재시작 되도록 해당 사항 체크 

 

플러그인 잘 설치되어 있는지 확인 

 

 

 

가상 머신에서 ssh 키 를 만들었다면

cat ~/.ssh/id_rsa

이 내용을 저 key 부분에 넣어주시면 됩니다.

remote directory 는 어떤 경로 내에서 명령어를 작성할 것인지 정하는 것

 

아이템 설정 들어가보면

 

 

 

 

그러면 이제 이런 플러그인들을 사용해보겠습니다.

 

파이프라인 사용

 

jenkins@test:~/workspace/test2/jenkins_test$ ls -al
total 8
drwxr-xr-x 2 jenkins jenkins 4096 Mar 19 06:12 .
drwxr-xr-x 7 jenkins jenkins 4096 Mar 19 06:24 ..
jenkins@test:~/workspace/test2/jenkins_test$ cd ../

 

지금 jenkins_test 

pipeline {
    agent any
    
    environment {
        IMAGE_NAME = "gyuho0897/backend:${BUILD_ID}"
    }

    stages {
        stage('Git Clone') {
            steps {
                echo 'Cloning repository'
                git branch: 'main', url: 'https://github.com/Ahngyuho/jenkins_test'
            }
        }

        stage('Gradle Build') {
            steps {
                dir('jenkins-test') {  // Git Clone한 프로젝트 디렉토리로 이동
                    echo "Add permission to gradlew"
                    sh 'chmod +x gradlew'
                    
                    echo "Build the project"
                    sh './gradlew bootJar'
                }
            }
        }
        
        stage('Docker Build') {  
            steps {
                script {
                    withCredentials([
                        usernamePassword(credentialsId: 'DOCKER_HUB', usernameVariable: 'DOCKER_HUB_ID', passwordVariable: 'DOCKER_HUB_PW')
                    ]) {
                        dir('jenkins-test') {  // Dockerfile이 있는 디렉토리에서 실행
                            echo "Building Docker Image: ${IMAGE_NAME}"
                            sh "docker build -t ${IMAGE_NAME} ."
                            
                            echo "Docker Login"
                            sh "docker login -u $DOCKER_HUB_ID -p $DOCKER_HUB_PW"
                            
                            echo "Docker Push"
                            sh "docker push ${IMAGE_NAME}"
                        }
                    }
                }
            }
        }
    }
}

 

파이프 라인 관리의 장점