[Jenkins] Docker 환경에서 Jenkins 서비스 설치

Jenkins는 지속적 통합(Continuous Integration)을 제공하는 툴입니다.
GitHub, GitLab과 같은 Code Repository와 연동하여 소스 코드의 커밋을 감지하여 빌드 및 테스트를 자동화 할 수 있습니다.
Docker 컨테이너를 통해 Jenkins 서비스를 설치해보겠습니다.

Jenkins docker-compose.yml 파일 작성

최신 LTS 버전인 jenkins/jenkins:lts-jdk11 이미지를 사용하여 Jenkins를 구성해보도록 하겠습니다.
서비스 포트인 8080번, 50000번 포트를 포워딩 설정하고, 주요 디렉토리를 마운트하도록 설정합니다.

services:
  jenkins:
    image: jenkins/jenkins:lts-jdk11
    container_name: server-jenkins
    restart: always
    ports:
      - 8080:8080
      - 50000:50000
    volumes:
      - /home/jenkins:/var/jenkins_home:rw

 

마운트 하고자 하는 디렉토리의 권한을 chown 명령어로 할당해줍니다.
권한을 할당하지 않으면 Jenkins 컨테이너 실행 시 권한 오류가 발생합니다.

mkdir /home/jenkins
chown 1000:1000 /home/jenkins

 

Jenkins 실행

설정 완료 후 docker-compose up -d 명령어로 컨테이너를 실행합니다.

# docker-compose up -d
Creating network "jenkins_default" with the default driver
Creating server-jenkins ... done

 

정상적으로 컨테이너가 생성되고 실행되었는지 확인합니다.

# docker ps -a | grep jenkins
28ca76f273c7   jenkins/jenkins:lts-jdk11      "/usr/bin/tini -- /u…"   8 minutes ago   Up 8 minutes                0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:50000->50000/tcp, :::50000->50000/tcp   server-jenkins

 

Jenkins 로그인 및 설치 확인

컨테이너 실행 완료 후 http://IP:8080 주소를 통해 Jenkins 웹 페이지에 접속합니다.

 

아래와 같이 약간의 로딩 시간이 걸릴 수 있습니다.

 

서비스 구동 완료 후 아래와 같이 로그인 화면이 출력됩니다.

 

initial 패스워드를 통해 접속 가능하며 서버에서 아래 경로에 명령어로 확인 가능합니다.

# cat /home/jenkins/secrets/initialAdminPassword
f9d91c45d67b4c1abe083acf718a6fd1

 

Jenkins를 설치한 환경이 Offline 환경이면 아래와 같이 Offline 화면이 나오며 Online 환경일 경우 플러그인을 설치할 수 있는 화면이 나옵니다. Install suggested plugins를 선택하여 플러그인 설치를 진행해보겠습니다.

 

Jenkins 커뮤니티에서 가장 유용하다고 생각하는 플러그인 설치가 진행됩니다.

 

플러그인 설치 완료 후 계정 설정과 URL 설정을 진행합니다.

 

마지막 설정을 끝으로 아래와 같이 Jenkins를 사용할 수 있습니다.

Jenkins에서 Code Repository와의 연동 및 CI 작업은 다음에 다뤄보도록 하겠습니다.

+ Recent posts