TY_Daily

젠킨슨 공통2 본문

SSAFY프로젝트

젠킨슨 공통2

TY_TaeYeon 2024. 10. 10. 09:26

pipeline{
agent any
   
    stages{
     stage('Checkout'){
         steps{
            //  git branch: 'feat-BE-user',
            git branch: 'develop',
             credentialsId: 'KTY', 
             url: "https://lab.ssafy.com/s11-bigdata-recom-sub1/S11P21D207.git"
            }
        }
    
    
    
         stage('Kiosk Front_Build and Deploy Kiosk Front') {
            steps {
                dir('/var/jenkins_home/workspace/D207/FE/front/'){
                   
                    sh 'ls -al'
                    sh 'whoami'
                    
                    sh 'docker ps -a'
                    // react_container 존재하면 멈추고 삭제하기
                    sh '''
                      if [ "$(docker ps -aq -f name=react_container)" ]; then
                            docker stop react_container
                            docker rm react_container
                        fi
                    '''
                    
                    
                    
                    // 'react-image'이라는 이미지가 존재하는지 확인하고 삭제
                    sh '''
                        if [ "$(docker images -q react-image 2> /dev/null)" != "" ]; then
                            docker rmi react-image
                        fi
                    '''

                    sh 'docker build --no-cache -t react-image .'
                    // 위 명령어까지 진행되면 
                    
                    // 컨테이너가 존재하면 삭제
                    sh '''
                    if [ "$(docker ps -aq -f name=react_container)" ]; then
                        docker rm -f react_container
                    fi
                    '''
                    // 새로운 컨테이너 생성
                    sh 'docker run -d --name react_container -p 3000:3000 react-image'
                    
                    
                     }
                
                
            }
        }
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     
        stage('Docker_Build and Deploy Backend') {
            steps {
                dir('/var/jenkins_home/workspace/D207/BE/farmer/'){
                   
                    sh 'ls -al'
                    sh 'whoami'
                    
                    sh 'groups jenkins'
                    sh 'docker ps -a'
                    // my_container가 존재하면 멈추고 삭제하기
                    sh '''
                      if [ "$(docker ps -aq -f name=my_container)" ]; then
                            docker stop my_container
                            docker rm my_container
                        fi
                    '''
                    
                    
                    
                    // 'tem'이라는 이미지가 존재하는지 확인하고 삭제
                    sh '''
                        if [ "$(docker images -q tem_test 2> /dev/null)" != "" ]; then
                            docker rmi tem
                        fi
                    '''

                    sh 'docker build -t tem .'
                    // 위 명령어까지 진행되면 
                    
                    // 컨테이너가 존재하면 삭제
                    sh '''
                    if [ "$(docker ps -aq -f name=my_container_test)" ]; then
                        docker rm -f my_container
                    fi
                    '''
                    // 새로운 컨테이너 생성
                    sh 'docker run -d --name my_container -p 8081:8081 tem'
                    
                    
                     }
                
                
            }
        }
        
        
        //   stage('Nginx Build and Deploy Nginx') {
        //     steps {
                
        //         dir('/var/jenkins_home/workspace/D207/nginx'){
                   
        //           //sh 'docker-compose --version'
                    
        //             // react_container 존재하면 멈추고 삭제하기
        //             sh '''
        //               if [ "$(docker ps -aq -f name=nginx_container)" ]; then
        //                     docker stop nginx_container
        //                     docker rm nginx_container
        //                 fi
        //             '''
                    
                
                    
                    
                    
        //             // 'nginx-image'이라는 이미지가 존재하는지 확인하고 삭제
        //             sh '''
        //                 if [ "$(docker images -q nginx-image 2> /dev/null)" != "" ]; then
        //                     docker rmi nginx-image
        //                 fi
        //             '''
                    
        //             // certbot 존재하면 멈추고 삭제하기
        //             sh '''
        //               if [ "$(docker ps -aq -f name=certbot)" ]; then
        //                     docker stop certbot
        //                     docker rm certbot
        //                 fi
        //             '''
                    
                    
                    
                    
               
                    
                    
        //             sh 'docker build --no-cache -t nginx-image .'

                  
                    
                    
        //              // 컨테이너가 존재하면 삭제
        //             sh '''
        //             if [ "$(docker ps -aq -f name=nginx_container)" ]; then
        //                 docker rm -f nginx_container
        //             fi
        //             '''
                    
                    
        //              // 컨테이너가 존재하면 삭제
        //             sh '''
        //             if [ "$(docker ps -aq -f name=certbot)" ]; then
        //                 docker rm -f certbot
        //             fi
        //             '''
        //             // // 새로운 컨테이너 생성

        //             sh '''docker run -d --name nginx_container -p 80:80 -v $(pwd)/FE/:/usr/share/nginx/html nginx-image'''
        //             // // 새로운 컨테이너 생성

        //              }
                
                
        //     }
        // }
        
        
        
        
        
        
        
        
        
        
        
        
    
    
 
    }
}