본문 바로가기
공부

Docker) Docker에 Jenkins 설치

by son_i 2024. 1. 22.
728x90

Jenkins란?)

Jenkins는 소프트웨어 개발 시 지속적으로 통합(CI : Continuous Integration) 서비스를 제공하는 툴

 

다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유 영역에 있는 저장소에 빈번히 업로드 함으로써 지속적 통합이 가능하다.

 

CI : 여러 개발자들의 코드를 계속해서 통합하는 것
=> 각 개발자들이 개발한 코드들을 합쳐 공통으로 빌드 및 테스트를 진행
CD : 개발자들이 작성한 코드를 사용자들이 계속 쓸 수 있게 만드는 것.
=> 테스트가 끝나 빌드된 파일을 배포하는 역할

 

1. Jenkins 이미지 내려받기

Docker hub (도커이미지 대표 레지스트리로 Ubuntu, CentOS 같은 OS 이미지, MySQL, Redis, MongoDB, Nginx 같은 미들웨어, OpenJDK, Golang, NodeJS 같은 플랫폼 이미지도 제공)에서 Jenkins 이미지를 내려받음.

 

$ docker pull jenkins/jenkins:lts

jenkins:lts는 jdk 8로 실행됨.

 

2. 다운로드 된 이미지 확인

$ docker images

 

3. Jenkins 이미지를 컨테이너로 실행하기

$ docker run -d -p 8180:8080 -v /var/jenkins_home --name jenkins -u root jenkins/jenkins:lts

//옵션
-d : detached mode == 백그라운드 모드
-p : 호스트와 컨테이너의 포트를 연결 (포워딩)
-v : 호스트와 컨테이너의 디렉토리를 연결
-name : 컨테이너 이름 설정
-u : 실행할 사용자 지정

* 맨 마지막 jenkins/jenkins:lts 는 실행할 이미지의 레포지토리 이름이며 만약 이미지가 없을 경우 이미지를 docker hub 에서 땡겨오므로 주의한다.

 

4. 컨테이너 목록 확인

$ docker ps

 

5. Jenkins 접속 후 나머지 설정

ec2 탄력 IP 주소:8180

를 주소창에 입력하면 처음엔 접속이 안 된다고 뜸 !

 

방화벽 때문이라 인바운드 규칙에 8180 포트를 열어두도록 설정해둠. (8180 포트는 위에서 컨테이너 실행할 때 적어둠)

-> 8081로 바꿔줌 !

 

jenkins 접속하기 위해서 andmin password를 입력해야한다.

 

$ docker logs jenkins

실행하여  admin password를 확인하고 로그인

 

 

초기에 플러그인을 설치할 수 있는 화면이 나옴.

첫 번째꺼 선택해서 기본 플러그인들을 설치.

 

설치가 완료되면 계정을 생성하는 페이지가 나오는데 정보 입력 후 save and continue 클릭

 

 

끝 ~