젠킨스와 도커를 이용하여 배포해보기1
젠킨스와 도커를 이용하여 배포해보기
[목표]
- 젠킨스와 도커를 이용한 빌드/테스트/배포자동화
- 무중단배포
젠킨스를 이용하여 자동 빌드해보기
[준비물]
-
- java 11
- jenkins가 기본적으로 java 8과 11만 지원된다는 사실을 알았다. 하지만 19-04-16부터 java 8과 관련된 업데이트이후로 ppa:webupd8team/java에서 installer를 제공되지 않는다고 들었다. 그래서 그냥 11버전으로 해보기로 했다.
-
- docker-ce
- 자바 11버전을 사용하지 않았더라면 그냥 젠킨스를 다운받아서 실행해도 상관없다. 하지만 11버전을 사용해야 한다면 젠킨스를 사용하기 위해서는 docker가 필수다. 뒤에 나올테지만 11버전은 젠킨스를 그냥 실행할 수 없고 docker를 이용해야 실행가능하다.
자바 설치
-
ppa 추가
sudo add-apt-repository ppa:linuxuprising/java
-
apt update
sudo apt-get update
-
install
sudo apt-get install oracle-java11-installer
-
라이센스 동의
-
설치 확인
java -version
도커 설치
젠킨스 실행하기
-
젠킨스 이미지 다운
sudo docker pull jenkins/jenkins:2.164-jdk11
-
젠킨스 실행 스크립트 만들기
jenkins_start.sh
sudo docker run -d -p 8080:8080 -v [로컬 절대 경로]:/var/jenkins_home jenkins/jenkins:2.164-jdk11
p태그 : 컨테이너의 8080포트와 로컬 8080포트 바인딩
v태그 : 컨테이너의 /var/jenkins_home의 데이터를 로컬 지정 경로와 마운트
d태그 : detach mode
-
실행 권한 주기
sudo chmod +x ./jenkins_start.sh
-
젠킨스 실행
./jenkins_start.sh
-
젠킨스 잠금 모드 풀기
1) 컨테이너 이름 확인하기
docker ps
2) 컨테이너 bash가져오기
docker exec -it [컨테이너이름] /bin/bash
3)
/var/jenkins_home/secrets/initialAdminPassword
비밀번호cat /var/jenkins_home/secrets/initialAdminPassword
4) 브라우저에서 [ip]:8080 접속하면 Unlock Jenkins라는 페이지가 나올거임 비밀번호 입력창에 위의 단계에서 나온 비밀번호를 입력
-
Install suggested plugins
클릭 -
user 생성
-
[option] bitbucket을 이용하는 사람이라면 왼쪽 탭의 jenkins관리 - 플러그인 관리 - bitbucket plugin 설치
작업 생성
-
홈에서
새로운 Item
클릭 -
이름 입력 후 아래의
Freestyle project
클릭 후 OK -
General탭에 자신의 깃허브 프로젝트 URL 입력
-
소스 코드 관리 탭에 Git을 선택후 레포지토리 URL 및 크레덴셜 입력
-
빌드 유발 탭에
Bitbucket
이라면 Build when a change is pushed to BitBucket,Github
라면 Github hook trigger for GITScm polling 선택 -
Build탭에서 빌드시 원하는 작업을 선택 나의 경우는 Execute shell 선택후 빌드도구가 그레이들이기 때문에 다음과 같이 작성
-
Apply 후 저장
빌드 해보기
-
생성한 프로젝트를 클릭 후 왼쪽 탭에서
Build Now
클릭 -
아래의 Build History에서
#1
이 빨간색으로 되어있다면 빌드 실패한것임 -
#1클릭 후
Console Output
으로 들어가 내용 확인
마치며
- 오늘은 간단하게 젠킨스를 통해 원격레포지토리 master브렌치에 푸시되었을 때 프로젝트를 가져와서 빌드하는 것을 해보았다. 다음 포스트에서는 빌드가 성공했을 때 외부에서 실행중인 서비스를 중지시키고 빌드가 성공한 프로젝트를 실행하는 것을 목표로 한다.