Seapy's Blog


최근들어 설치가 복잡한 어플리케이션의 경우 Docker를 이용해 배포하는 경우가 많은데 이번에는 Docker를 이용해서 Jenkins를 실행해보려고 한다.

Jenkins의 공식 이미지(https://github.com/cloudbees/jenkins-ci.org-docker) 를 사용하면 한줄이면 Jenkins가 실행된다.

Jenkins 실행

다음 명령어를 실행하면 jenkins가 실행된다.

$ docker run -p 8080:8080 -v /docker/jenkins:/var/jenkins_home -u root jenkins

맥 사용자의경우 볼륨 연결 방법에 대한 글을 따로 읽을 필요가 있다. 볼륨 컨테이너 설정은 맥에서 Jenkins 실행 테스트를 위한 용도라면 필요없다.

-u rootroot 유저로 실행되는것을 의미 하는데 linux 에서 실행시 호스트에 jenkins 유저가 있다면 지정하지 않아도 된다.

실제 서비스에서 실행할때는 -d 옵션을 붙이고 초기 테스트할때는 -d 옵션이 없는경우 실시간으로 출력로그를 볼수 있어 유용하다.

이제 브라우저는 통해 접속하면 jenkins 초기화면을 볼수 있다.

플러그인

기본 설치 버전에는 git 플러그인이 설치되어 있지 않으므로 필요하다면 Jenkins Web UI에서 설치하자.

좌측 메뉴의 Jenkins 관리 > 플러그인 관리 에서 설치가능 필터를 git clien로 검색해서 나오는 Git Plugin, Git Client Plugin만 설치하면 된다.

인증

Jenkins 에서는 여러가지 인증모드를 지원하는데 여기서는 특정유저만 읽기, 쓰기 가능하고 가입하지 않은 사람은 아무것도 볼수 없게 하겠다.

좌측 메뉴의 Jenkins 관리 > Configure Global Security를 차례대로 선택해 인증 설정화면으로 이동한다.

Jenkins 관리 메뉴 선택

Jenkins 관리 메뉴

인증 설정화면의 Enable security를 체크하면 세부 설정 항목이 보인다.

Jenkins 인증 설정

'Security Realm'은 'Jenkins` own user database'를 체크하고 '사용자의 가입 허용' 역시 체크한다.

'Authorization'에서는 'Matrix-based security'를 선택하고 내가 가입할 유저이름을 입력하고 전체 권한을 추가한다.

'Anyone can do anything', 'Legacy mode', 'Logged-in users can do anything'는 가입하지 않은 유저도 빌드 로그등을 확인 가능하므로 추천하지 않는다.

적용 버튼을 누르게 되면 바로 로그인 페이지로 이동하게 되는데 여기서 가입하기를 눌러 방금 입력했던 유저계정명과 동일한 계정명으로 가입한다.

Jenkins 가입

가입이 완료되면 다시 인증 설정메뉴로 가서 '사용자의 가입 허용'을 해제하자.

이제 Jenkins는 나만 볼수 있게 되었다 :)