Docker를 활용하여 Jenkins설치

도모·2022년 11월 3일
1
post-thumbnail

시작하며

Docker이 미리 설치되어 있다고 가정하고 진행한다.

Jenkins란?

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

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

그럼 CI (Continuous Integration) 란 무엇일까?

주로 CI는 CI/CD 와 함께 불린다.

  • CI (Continuous Integration) : 여러 개발자들의 코드를 계속해서 통합하는 것

  • CD (Continuous Delivery) : 개발자들이 코드를 계속 작성하면, 사용자 및 내부 사용자들이 계속 쓸수 있게 만드는 것

쉽게 설명하자면, CI는 각 개발자들이 개발한 코드들을 합쳐 공통으로 빌드 및 테스트를 진행하고

CD는 테스트가 끝나 빌드된 파일을 배포하는 역할을 한다.

Jenkins 의 자세한 내용은 해당 포스터에서 다루지는 않겠다.

Jenkins 설치 과정

1.Jenkins 이미지 내려받기(Docker Hub)

Docker Hub에서 Jenkins 이미지를 내려받을 수 있다.

Docker Hub란?

도커 이미지를 업로드해서 공유하는 저장소를 도커 레지스트리(Docker Registry)라고 한다. 대표적으로는 도커의 공식 레지스트리인 Docker Hub 가 있다. 도커 허브에서는 업체에서 제공하는 공식 이미지를 받을 수 있다.
Ubuntu 나 CentOS 같은 OS 이미지, MySQL, Redis, MongoDB, Nginx 와 같은 미들웨어, OpenJDK, Golang, NodeJS 와 같은 플랫폼 이미지도 제공한다.

docker pull jenkins/jenkins:lts
해당 명령어 jenkins 이미지를 내려받을 수 있다.

하지만 jenkins:lts는 jdk8로 실행이 된다.

자바 11을 주로 사용하므로 jdk11로 실행하는 이미지를 내려받자.
docker pull jenkins/jenkins:jdk11

이미지를 내려받았다면
docker images
명령어를 통해 다운로드 된 이미지를 확인하자.

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

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

// 위 명령어 옵션설명
-d	detached mode 흔히 말하는 백그라운드 모드
-p	호스트와 컨테이너의 포트를 연결 (포워딩)
-v	호스트와 컨테이너의 디렉토리를 연결 (마운트)
–name	컨테이너 이름 설정
-u 실행할 사용자 지정

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


위와 같은 에러가 발생하는 분은 해당 볼륨의 위치가 Mount 권한이 없어 실행에 실패를 했다고 한다.

해결 방법은 Docker Client를 실행하여 Preferences -> Resources -> FILE SHARING 메뉴에서 마운트 할 경로를 추가해주면 된다고 한다.


Mount 해주려는 경로를 추가하고나서 하단에 Apply & Restart 버튼을 꼭 클릭해야한다.

그 후 다시 컨테이너 실행 명령어 실행해보니

이미 컨테이너가 실행되어있다고 한다면, 기존에 에러가 나면서 실행되었던 컨테이너는 제거해주자.

우선 도커의 컨테이너 목록을 확인하고

docker ps -a
jenkins의 컨테이너 번호를 확인 후

docker rm [컨테이너 ID]
해당 명령어를 통해 컨테이너를 삭제해주자.

위와 같이 나온다면 jenkins 이미지를 받아 컨테이너 실행까지 완료한거다.

3.Jenkins를 접속하여 마저 설치

localhost:8180 으로 접속 하면 아래와 같은 창이 나온다.

여기서 8180으로 접속한 이유는 위에 jenkins 컨테이너를 실행할 때 8180포트로 실행해주었기때문이다.

jenkins에 접속하기 위해서는 admin password를 입력하여야 한다.

원래는 docker 이미지에 접근하여 initialAdminPassword 폴더에서 직접 확인하여야 하지만

docker logs jenkins
명령어를 실행하여 간편하게 admin password를 확인하여 로그인 해주도록하자.

로그인을 하고나면 아래와 같은 페이지가 나온다.

초기에 플러그인을 설치할 수 있는 화면인데, 'install suggested plugins'를 클릭하여 기본 플러그인들을 설치해주자.


플러그인을 모두 설치하고 나면 아래와 같이 계정을 생성하는 페이지가 나온다.

정보를 입력 후 Save and Continue 버튼 클릭

Jenkins 설치가 끝났다.

참고
http://jmlim.github.io/docker/2019/02/25/docker-jenkins-setup/

profile
안녕하세요. 백엔드 엔지니어 도모입니다.

0개의 댓글