Jenkins(CI) Pipeline 설정 (+ Docker)

김젼·2021년 4월 29일
0

사전 준비

  • 도커 설치

작업 환경

  • mac OS

도커 허브에서 Jenkins 이미지 pull

docker pull jenkins/jenkins:lts

Jenkins 이미지를 컨테이너로

docker run -d -p 8081:8080 -v /Users/jiyaaany/Documents/Jenkins:/var/jenkins_home --name jenkins -u root jenkins/jenkins:lts


컨테이너 ID 가 반환되었다면 성공! 👍🏻

Jenkins 컨테이너 실행

  • Docker Desktop 이 설치되어 있다면 쉽게 컨테이너를 실행할 수 있지만, 없는 경우
docker start jenkins
docker attach jenkins


Administrator password 는 젠킨스 컨테이너 실행 시 확인 가능

Jenkins 설치

Install suggested plugins: 권장 플러그인들을 포함해 설치

초기 유저 세팅

젠킨스 설치가 끝나면 초기 유저를 세팅하는 화면으로 이동됩니다.


아래 화면이 떴다면 설치가 잘 된 상태 👀

이제 깃허브와 Jenkins 연동을 해볼겁니다!
깃허브에 새로 push 되었을 때 Jenkins에서 테스트를 거쳐 서버에 배포하기까지의 작업을 설정해보겠습니다.

프로젝트 생성

Dashboard > New Item 메뉴에서 이름을 설정하고 Multibranch Pipeline 로 선택

다음 화면으로 넘어가 Git 리포지토리 URL 을 연결해줄게요 ➰
리포지토리 URL 입력 후 Credentials Add 버튼을 누르면 아래와 같이 사용자 인증을 위한 창이 뜹니다. 개인 프로젝트일 경우 간편하게 Username with password 로 인증 설정을 해줍니다.

Credentials 설정 중 아래와 같은 에러를 마주친다면, Github에서 새로운 token을 발급받아 토큰 인증을 해줍니다. 사용자 인증 정보를 세팅하고 나면 Credentials 셀렉트 박스에서 방금 입력한 정보를 선택할 수 있습니다.

하단의 save 버튼을 누르게 되면 자동으로 리포지토리 스캔을 실행합니다. 아래 Checking branches... 이후 본인의 원격 브랜치들을 잘 스캔했는지 확인하고, SUCCESS 문구를 확인했다면 리포지토리와 잘 연결됐다고 보시면 됩니다 😊

Jenkinsfile 생성

프로젝트에 Jenkinsfile 이라는 이름으로 파일 하나를 생성해뒀습니다. 구조는 아래를 참고하셔서 각 stage 별 수행해야할 코드를 작성합니다. (젠킨스 연동 테스트라 test stage 가 비어있는 점 참고해주세요.)

node {
    agent any
    stages {
        stage("build") {
            steps {
                sh 'pip install -r requirements.txt'
            }
        }
        stage("test") {

        }
    }
}

이렇게 젠킨스와 리포지토리를 연결해보았는데요. 첫 연동이라 미흡한 점이 많으니 더 좋은 방법이 있다면 코멘트 부탁드립니다! 🙏🏻

0개의 댓글