리눅스 끄적끄적

리눅스에서 스프링의 application.properties파일 분리

winwin-k9 2023. 5. 29. 20:42

현재 프로젝트에서 API를 제공하는 서버를 담당하고 있다.

젠킨스를 이용해서 CI/CD를 구축해야 했었는데, 이때 application.properties를 ignore 처리했기때문에 clone을 해도 해당 파일을 가져오지 못한다. 따라서 빌드를 할때 빌드를할 수 없기 때문에 서버에 따로 설정파일을 구축하여 이를 읽도록 해야 한다.  

 

pipeline {
    agent any

    stages {
        stage('github Clone') {
            steps {
               git credentialsId: '설정한credential', branch: 'main' , url: '깃허브'
            }
        }
        
        stage('build') {
            steps {
               sh ''' 
                echo 'start bootJar' 
                chmod +x gradlew
                ./gradlew clean bootJar
                '''
            }
        }
    }
}

기존에 구축한 파이프라인이다. build Stage 전에 리눅스에 서버에서 따로 구축한 properties들을 깃허브에서 clone한 스프링 프로젝트의 resource 위치로 옮기는 코드를 넣을 것이다.

 

pipeline {
    agent any

    stages {
        stage('github Clone') {
            steps {
               git credentialsId: '설정한credential', branch: 'main' , url: '깃허브'
            }
        }
        stage('change properties'){
            steps{
                sh 'rm ./src/main/resources/application.properties'
                sh 'rm ./src/main/resources/application-swagger.properties'
                sh 'sudo cp /root/config/application.properties /var/lib/jenkins/workspace/Nutt-Application/src/main/resources' 
                sh 'sudo cp /root/config/application-swagger.properties /var/lib/jenkins/workspace/Nutt-Application/src/main/resources'
                sh 'sudo cp /root/config/application-S3.properties /var/lib/jenkins/workspace/Nutt-Application/src/main/resources' 

            }
        }
        
        stage('build') {
            steps {
               sh ''' 
                echo 'start bootJar' 
                chmod +x gradlew
                ./gradlew clean bootJar
                '''
            }
        }
    }
}

첫 initial 커밋할때 남아있던 기존 properties를 삭제한다.

이후 리눅스에 따로 만들었던 properties들을 cp를 이용하여 해당 resources의 workespace위치로 옮겨주도록 한다.   

이때 Ncloud는 사용자 기본 위치가 root로 되어 있다. 따라서 필자도 config파일을 root폴더에 구축했었기에 젠킨스에 root권한을 주어서 sudo로 실행하도록 하였다. 

 

만약 aws나 gcp를 이용한다면 home디렉토리에 위치할 것이지 pwd를 이용하여 현재 위치를 확인하여 구축하도록 하자.

728x90