Setting

[Setting | Ubuntu] CI / CD 환경 구축하기 (3)

t-opendocs 2025. 1. 1. 22:48
반응형

CI / CD 환경을 구축하기 위한 마지막단계 소스변경시 수행될 스크립트 작성성


> 작성일 : 2025-01-02
> OS : Ubuntu 22.04.5 LTS
> Jeknins : v2.479.2

젠킨스 설치 후 진행 - Link

1단계 완료 후 진행 - Link

2단계 완료 후 진행 - Link


 

<1> Jenkins Pipeline script 작성

# 젠킨스 빌드시 수행될 스크립트를 작성
# Item > Configuration > Advanced Project Options
# Definition : Pipeline script 선택 및 아래 입력
pipeline {
    agent any
    stages {
        stage('Sync Source') {
            steps {
                echo '####################### Sync Source #######################'
                git url: '{깃허브 주소소}', branch: '{브랜치명}', credentialsId: '{인증ID - 1단계에서 생성}'
                sh '{기타 쉘명령 - EX. ENV파일 / Dockerfile 등}'
            }
        }
        stage('Docker Build & Push') {
            steps {
                echo '####################### Docker Build & Push #######################'
                sh 'sudo docker build -f Dockerfile -t {Repository 주소}/{프로젝트명}:{배포레벨} .'
                sh 'sudo docker push {Repository 주소}/{프로젝트명}:{배포레벨}'
            }
        }
        stage('Docker Reset') {
            steps {
                echo '####################### Docker Reset #######################'
                sh "sudo ssh jenkins@{배포대상 서버} -p 22 '{배포스크립트파일일}'"
            }
        }
    }
}

 


 

<2> Script 설명

* Sync Source
# 깃헙에서 소스를 가져온다
# 배포레벨에 따른 환경파일 / 도커파일 등을 복사한다.
* Docker Build & Push
# 빌드를 수행한다.
# docker repository에 올린다.
* Docker Reset
# 대상서버에 배포명령을 실행시킨다.

 


 

<3> 대상서버에 배포수행 Script 작성

# 배포될 서버에 아래내용 sh파일 작성
#!/bin/bash
sudo docker pull {Repository 주소}/{프로젝트명}:{배포레벨}
sudo docker rm -f {컨테이너명}
sudo docker run -p {서비스포트}:3000 -d --name {컨테이너명} --hostname {호스트명} {Repository 주소}/{프로젝트명}:{배포레벨}
sudo docker image prune -af

 


 

<4> Script 설명

# docker repository에서 이미지를 가져온다.
# 기존 컨테이너는 지운다.
# 새이미지의 컨테이너를 실행시킨다.
# 가져온 이미지 정리

 

반응형