Docker 컨테이너로 Jenkins 설치하기

gobeul·2023년 8월 31일
2

Jenkins 사용해보기

목록 보기
1/10
post-thumbnail

인프런 Dowon Lee님의 Jenkins를 이용한 CI/CD Pipeline 구축 강의를 수강하며 작성한 내용입니다.

Docker Desktop 설치

도커 환경에서 젠킨스를 사용할 것이기 때문에 도커를 우선 설치해준다.

나는 아래 사이트를 참고하여 설치하였다.
https://www.lainyzine.com/ko/article/a-complete-guide-to-how-to-install-docker-desktop-on-windows-10/


Jenkins 설치

https://www.jenkins.io/download/
젠킨스 다운드로드 사이트에 들어가서 Docker를 클릭해보면 Docker Hub사이트로 이동이 된다.

도커 이미지를 다운로드해야 되기 때문에 Docker Pull Command를 사용할 것이다.

잠깐 오른쪽의 Tag탭을 눌러보면 위와같은 화면이 나오는데 여러가지 형태의 버전들을 확인할 수 있다.
정확하게는 태그 자체가 버전을 나타낸다고 할 수는 없지만 버전을 나타내는 경우가 대부분이다.
아무것도 입력하지 않는다면 latest 버전을 사용하게 된다.

이제 터미널이나 cmd창에 docker pull jenkins/jenkins 명령어를 통해 jenkins 계정의 jenkins repository를 다운로드 받는다.

그 후 깃헙 공식사이트에 가보면 사용방법이 나와있다.
https://github.com/jenkinsci/docker/blob/master/README.md

첫번째 명령어
docker run -p 8080:8080 -p 50000:50000 --restart=on-failure jenkins/jenkins:lts-jdk11

run : 기본적으로 도커에서 이미지 생성시 사용되는 명령어
-p : 컨테이너 내부에 있는 포트를 컨테이너 밖의 환경에서 어떻게 접속해서 사용할 것인지를 나타내는 설정이다. -p 8080:8080 은 컨테이너 밖에서 8080(앞)으로 접속하면 컨테이터 내부의 8080(뒤)로 접속하겠다 라는 의미가 된다.
--restart=on-failure : fail시에 restart 해주는 옵션
lts-jdk11 : tag 이름 lst-jdk11 을 쓰겠다는 말이다.

두번째 명령어
docker run -p 8080:8080 -p 50000:50000 --restart=on-failure -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts-jdk11
-v : 볼륨옵션. 도커가 설치되어 있는 환경(Window, MacOS 등)에서 어떤 디렉토리와 도내부의 디렉토리와 마운트(=연결작업)할 것인지에 대한 설정
마운트 작업이 필요한 이유 : 도커 내부에 발생된 데이터는 도커 내부에 저장되기 때문에 도커가 삭제될 경우 해당 데이터가 함께 사라진다. 이를 위해 백업하는 작업이라고 보면 된다.

추가
docker run -d -p 8080:8080 -p 50000:50000 --name jenkins-server --restart=on-failure jenkins/jenkins:lts-jdk11
-d : detach 모드. 현재 우리가 실행하고 있는 콘솔, 터미널과 분리해서 실행하겠다는 의미. 즉 백그라운드(데몬 형태)로 기동하겠다는 의미, 터미널을 빠져 나와도 컨테이너는 실행된다.
--name : 만들고자 하는 컨테이너에 이름을 부여하는 옵션. 이 옵션이 없다면 도커가 랜덤한 이름을 생성해 부여한다. 즉 해당하는 컨테이너를 알 수 없게 된다. 그러므로 추천되는 옵션.

이제 터미널의 다음 명령어를 입력한다.
docker run -d -v jenkins_home:/var/jenkins_home -p 8080:8080 -p 50000:50000 --restart=on-failure --name jenkins-server jenkins/jenkins:lts-jdk11

그러면 -d 옵션을 사용했기때문에 컨테이너 아이디만 출력될것이다.

프로세스가 정상적으로 되고 있는 확인하기 위해 docker ps 를 입력해보면

STATUS 에 Up상태임을 확인할 수 있다.

다음은 docker logs 컨테이너 이름(or 컨테이너 아이디) 명령어를 통해 초기 비밀번호를 확인한다.
-d 옵션을 통해 detach모드로 실행했기 때문에 컨테이너 이름이나 아이디가 필요한 것!

초기 비밀번호는 젠킨스의 웹페이지 접근시 제일 먼저 요청되므로 잘 메모해두자.

이제 젠킨스에 접근해보자.
http://localhost:8080 으로 들어가보면

이런 화면이 나온다. 위에서 확인한 비밀번호 입력해주자.

그러면 플러그인 설치에 대한 화면이 나오는데 왼쪽을 클릭해서 모든 플러그인을 설치해주자.

플러그인 설치가 끝나면 초기 관리자 계정생성을 요청하는 페이지가 나온다.

간단하게 계정생성을 완료하면 접속할 수 있는 url 을 알려주고

Start using jenkins 버튼을 클릭하게 되면

서비스에 접속할 수 있게 된다.

우측상단에는 관리자로 로그인 됨을 확인할 수 있고, Dashboard에는 아무런 Item을 만들지 않았기때문에 비어있는 상태이다.
여기서 Item 이란 젠킨스에서 사용하고 있는 작업의 최소 단위를 뜻한다.

여러 메뉴가 있지만 우선 Jenkins 관리 라는 곳에 들어가보자.
이곳에서는 JDK설정, maven설정 같은 부분들을 진행할 수 있다.


JDK 설정 부분

JDK가 있어야지만 Jenkins가 실행된다.
즉, 지금 Jenkins가 실행되고 있다는 것 자체가 JDK가 설정되었다는 것을 암시한다.
그래서 따로 추가적인 설정은 필요없다.

먼저 JDK 설정을 해줄건데 JDK 경로를 입력해야한다.
우리는 도커환경에서 젠킨스를 설치했기때문에 자바를 설치할때 설치한 경로하고는 조금 다를것이다

터미널에서 docker exec -itu 0 {컨테이너 이름} /bin/bash 입력해서 관리자로 접속 후
env를 입력해보자.

JAVA_HOME 경로가 opt/java/openjdk 임을 확인할 수 있다.

그대로 경로를 잡아주었다.
아래 install automatically 옵션은 jdk가 설치되어 있지 않을 때 자동으로 설치 해주는 옵션다. 오라클 계정이 필요하며 설치할 수 있는 버전이 원하는 버전과 다를 수 있으므로 확인이 필요하다.

profile
뚝딱뚝딱

0개의 댓글

관련 채용 정보