Opendocs Logo

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

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 설명

IMG01

* 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 설명

IMG02

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


Tags : DevOps, cicd, 깃허브 access token, 자동배포환경, docker prune, docker pull, docker push, 젠킨스 pipeline, pipeline script



AD
ⓒ Opendocs. All Rights Reserved.