반응형
CI / CD 환경을 구축하기 위한 마지막단계 소스변경시 수행될 스크립트 작성성
> 작성일 : 2025-01-02
> OS : Ubuntu 22.04.5 LTS
> Jeknins : v2.479.2
<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에서 이미지를 가져온다.
# 기존 컨테이너는 지운다.
# 새이미지의 컨테이너를 실행시킨다.
# 가져온 이미지 정리
반응형
'Setting' 카테고리의 다른 글
[Setting | MacOS] HomeBrew(MacOS 패키지 관리자) 설치 (0) | 2025.01.23 |
---|---|
[Setting | Ubuntu] Nginx 설치 및 인증서 설정 (0) | 2025.01.18 |
[Setting | Ubuntu] CI / CD 환경 구축하기 (2) (0) | 2024.12.27 |
[Setting | Ubuntu] CI / CD 환경 구축하기 (1) (0) | 2024.12.26 |
[Setting | Ubuntu] Docker - Jenkins 설치 (0) | 2024.12.26 |