앞의 기본 설정 단계를 모두 진행했다는 가정하에 진행하겠다!
[Jenkins] GitLab 자동 배포(1) : 기본 설정
기본 단계별로 확인할 수 있는 Pipeline으로 생성하겠다!
GitLab Connection에 자신이 설정해놓은 깃랩이 잘 연결되어 있는지 확인해준다.
노란색 칠해진 곳의 url은 gitlab에서 사용되니 잘 적어두자!
그리고고급에서 추가 설정을 진행해준다.
아래의 Generate버튼을 눌러 Key값을 발급 받는다 이또한 gitlab에서 사용될것이기 때문에 잘 적어두자!
그럼 이제 Pipeline이 생성 완료 되었다.
pipeline {
agent {
any {
// 젠킨스에서 사용할 Docker 이미지 설정
// 여기서는 Gradle과 Java가 설치된 이미지를 사용합니다.
image 'gradle:jdk11'
}
}
environment {
// 빌드 결과물이 저장될 경로
BUILD_DIR = "/var/{경로}/backend"
DOCKER_CONTAINER_NAME = "{컨테이너 이름}"
}
stages {
//첫 번째 단계 : git clone
stage('Git Clone') {
steps {
git branch: '{clone 하고자 하는 branch 이름}',
credentialsId: '{발급 받은 개인 accesstoken의 이름}',
url: 'https://{gitlab의 url}'
}
}
// 두번째 단계 : spring boot파일 빌드!
stage('Build') {
steps {
sh 'pwd'
sh 'ls -al'
// jar 파일 삭제
sh 'rm build/libs/*.jar | true'
dir('{git에서 해당 파일 경로}'){
// 스프링 빌드
sh 'pwd'
sh 'ls -al'
sh 'chmod +x gradlew'
sh './gradlew clean build'
// 도커 이미지 빌드
sh 'docker build -t {USERNAME}/{IMAGE_NAME}:latest .'
sh 'docker images'
}
}
}
//서버에 배포 단계
stage('Deploy') {
steps {
// 기존 서버 중지
sh "docker stop $DOCKER_CONTAINER_NAME || true" // 기존 컨테이너가 없을 경우를 위해 무시
sh "docker rm $DOCKER_CONTAINER_NAME || true" //중지된 서버 삭제
// 빌드된 파일을 원하는 위치로 배포
// 예: 서버에 배포하는 경우
sh "whoami"
sh "groups"
// 새로운 서버 실행
sh "docker run -d -p {포트번호}:{포트번호} -e TZ=Asia/Seoul --name $DOCKER_CONTAINER_NAME {USERNAME}/{IMAGE_NAME}"
// 쓰레기 이미지 삭제
sh 'docker images -f dangling=true -q | xargs -r docker rmi'
}
}
}
}
위에서 노란색 부분이었던 곳의 URL을 입력하고 발급 받은 빨간색 칸에 있는 토큰을 작성한다.
이때Trigger을All branches로 한다면 push 될때마다 자동배포가 실쟁되니wildcard patten을 이용해서 branch이름을 적어주면 해당 branch에 push될때마다 배포가 진행된다!
아래 선택 사항에서push envents을 선택해준다
Test - push events를 클릭하면 테스트가 진행되고 위에 결과가 http 200이면 연결이 성곤한 것이다!
아래와 같이 성공적으로 배포가 완료 되면 끝이다!
독든 감자님, 요즘은 블로그 안쓰시나요?????????? 예????????