> 작성일 : 2025-01-02
> OS : Ubuntu 22.04.5 LTS
> Jeknins : v2.479.2
# 젠킨스 빌드시 수행될 스크립트를 작성
# 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 '{배포스크립트파일일}'"
}
}
}
}
# 깃헙에서 소스를 가져온다
# 배포레벨에 따른 환경파일 / 도커파일 등을 복사한다.
# 빌드를 수행한다.
# docker repository에 올린다.
# 대상서버에 배포명령을 실행시킨다.
# 배포될 서버에 아래내용 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
# docker repository에서 이미지를 가져온다.
# 기존 컨테이너는 지운다.
# 새이미지의 컨테이너를 실행시킨다.
# 가져온 이미지 정리
Tags : DevOps, cicd, 깃허브 access token, 자동배포환경, docker prune, docker pull, docker push, 젠킨스 pipeline, pipeline script