젠킨스는 소프트웨어 개발시 지속적 통합(CI)를 자동화 해주는 툴이다.
다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유 영역에 있는 Git
등의 저장소에 빈번히 업로드함으로써 지속적 통합이 가능하도록 해준다.
젠킨스는 원래 허드슨 프로젝트로 개발되었다.
허드슨의 개발은 2004년 여름 썬 마이크로시스템즈에서 시작되었으며, 2005년 2월에 java.net에 처음 출시되었다.
내용 | 설명 |
---|---|
발표일 | 2011년 2월 2일 |
안정화 버전 | 2.269 / 2020년 12월 1일 |
저장소 | github.com/jenkinsci/jenkins |
프로그래밍 언어 | Java |
운영 체제 | 크로스 플랫폼 |
종류 | 지속적 통합(CI) |
라이선스 | MIT |
웹사이트 | jenkins-ci.org |
- 각종 배치 작업의 간략화
- Build 자동화의 확립
- 자동화 테스트
- 코드 표준 준수여부 검사
- 빌드 파이프라인 구성
OS : Windows
Docker VM : Linux
먼저 명령어를 입력할 수 있는 창을 띄운다. (예: git bash, cmd, PowerShell) 필자는 cmd에서 진행하였다.
그 다음 docker에 jenkins image를 pull 받기 위해 다음 명령어를 입력한다.
docker pull jenkins/jenkins
뒤에 태그를 붙이고 싶다면 jenkins/jenkins:[태그]가 오면 되는데, 태그를 입력하지 않으면 기본으로 latest 태그로 세팅이 된다.
jenkins image를 pull 받으면 정상적으로 pull 됐는지 확인한다.
docker images
위 명령어를 입력하면 현재 docker에 pull 되어 있는 image들을 보여준다.
jenkins image를 성공적으로 pull한 것을 확인 했다면 이제 jenkins image를 run한다.
docker run --name jenkins -d -p 32773:8080 -p 50000:50000 -v ./jenkins:/var/jenkins_home -u root jenkins/jenkins
jenkins의 기본 포트가 8080인데, 필자는 8080포트 대신 32773으로 변경하여 접속하는 것을 진행하였다.
만일 8080포트로 접속하고 싶다면 32773:8080이 아니라 8080:8080으로 하면 될 것이다.
image가 정상적으로 실행되었다면 container가 정상적으로 실행되고 있는지 확인해보자.
docker ps
위 명령어를 치면 현재 돌아가고 있는 docker container 목록을 보여준다.
정상적으로 실행이 되면 위 사진 처럼 jenkins가 실행되고 있는 것을 확인할 수 있다.
필자의 경우 포트를 32773으로 했기 때문에 localhost:32773으로 접속하면 jenkins화면이 뜨게 된다.
jenkins에 처음 접속하면 다음과 같은 화면이 뜨는 것을 확인할 수 있다.
위 비밀번호의 경우는 jenkins container의 log를 확인해보면 접속 비밀번호를 알려준다.
docker logs [container ID]
위 명령어를 치면 여러 내용이 나오게 될 것인데, 그 중에서 비밀번호를 알려주는 부분이 있다.
위 빨간색 막대로 가려진 부분 포함해서 저 줄이 jenkins 접속 비밀번호가 되는데, 저 비밀번호를 그대로 복사해서 붙여 넣으면 접속이 된다.
성공적으로 접속하면 plugin을 설치하는 창으로 이동하게 된다.
필자의 경우 왼쪽을 선택하였지만, 내가 원하는 plugin만 찾아서 설치하고 싶다면 오른쪽을 선택하여 선택해서 설치하면 될 것이다.
plugin 설치가 다 됐다면 계정 설정 하는 페이지로 이동하게 된다.
- 계정명 : 이후 jenkins에 접속할 때 사용될 아이디
- 암호 및 암호 확인 : jenkins에 접속할 때 사용될 비밀번호
- 이름 : jenkins에 접속했을 때 표시될 사용자 이름
- 이메일 주소 : 이메일 입력하는 자세한 이유는 필자도 잘 모르겠습니다.
모든 설정을 완료하고 Save and Continue
버튼을 누르면 다음과 같이 jenkins 메인 화면으로 이동하게 된다.
메인 화면이 나오게 되면 비로소 jenkins에 접속하는 것이 마무리된다.