홈서버 구축 (미니PC)

개인 서버 구축(7) - Jenkins 설치하고 설정하기

남건욱 2025. 4. 28. 23:47
반응형

Jenkins를 설치하고 기본설정을 해보자.

 

1. 젠킨스 docker-compose.yml 작성

version: "3.9"

services:
  jenkins:
    build:
      context: .
      dockerfile: Dockerfile.jenkins
    image: custom-jenkins:latest
    container_name: jenkins
    restart: always
    ports:
      - "8180:8080"
    volumes:
      - jenkins_data:/var/jenkins_home
      - /var/run/docker.sock:/var/run/docker.sock
      - /home/gunwook/app/service:/home/gunwook/app/service:rw

volumes:
  jenkins_data:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: /app/jenkins/data

docker-compose.yml을 먼저 작성한다. 컨테이너명은 jenkins,  접속포트를 8180으로 설정하고 내부 8080으로 포워딩했다. 또한 볼륨 설정으로 데이터를 휘발되지 않게 설정했다. 도커와 소켓도 공유해 줬다.

 

 

 

2. Dockerfile.jenkins 작성

FROM jenkins/jenkins:lts

USER root

# 1) Docker 공식 저장소 세팅 & 필수 툴 설치
RUN apt-get update && apt-get install -y --no-install-recommends \
      ca-certificates \
      curl \
      gnupg \
      lsb-release \
      apt-transport-https \
   && mkdir -p /etc/apt/keyrings \
   && curl -fsSL https://download.docker.com/linux/debian/gpg \
      | gpg --dearmor -o /etc/apt/keyrings/docker.gpg \
   && echo \
      "deb [arch=$(dpkg --print-architecture) \
           signed-by=/etc/apt/keyrings/docker.gpg] \
      https://download.docker.com/linux/debian \
      $(lsb_release -cs) stable" \
      | tee /etc/apt/sources.list.d/docker.list > /dev/null

# 2) Docker Engine + Compose V2 플러그인 설치
RUN apt-get update \
   && apt-get install -y --no-install-recommends \
      docker-ce \
      docker-ce-cli \
      containerd.io \
      docker-compose-plugin \
   && rm -rf /var/lib/apt/lists/*

# 3) jenkins 사용자를 docker 그룹에 추가
RUN groupadd -g 999 docker || true \
   && usermod -aG docker jenkins

USER jenkins

추가로 Dockerfile.jenkins를 작성해 준다. 이미지는 jenkins 최신버전을 사용했다. 그 뒤 루트 권한을 지정해 주고 필요한 툴과 플러그인을 설치했다. 마지막으로 Jenkins에 Docker 권한을 부여해서 추후에 도커에 접근할 권한을 지정해 줬다. 

 

 

 

3. 컨테이너 띄우기

docker compose up -d

이제 도커 컴포즈를 사용해서 컨테이너를 띄워준다.

 

 

 

4. 젠킨스 설정

이제 서버주소:8180을 해주면 젠킨스 설정창이 뜬다. 젠킨스 내부에서 관리자 비밀번호를 확인 후 입력해 주면 된다. 아래 비밀번호 확인법을 보고 따라 해 준다.

 

 

 

docker ps

docker logs {컨테이너ID}

docker ps로 실행 중인 컨테이너 정보를 확인한다. 그 뒤 컨테이너 ID를 확인해 주고 docker logs {컨테이너 ID}를 입력해 로그를 확인해 준다.

 

 

 

리스트를 확인했으면 위 명령어로 젠킨스의 로그를 확인해 준다. 그러면 비밀번호가 로그 하단에 떠있다. 이걸 그대로 입력해 주면 된다.

 

 

 

 

왼쪽의 [Install suggested plugins]를 클릭한다.

 

 

 

 

이제 기본적인 셋팅이 진행된다.

 

 

 

셋팅이 완료되면 계정명, 비밀번호, 이름, 이메일 주소를 설정하는 화면이 뜬다. 전부 입력해 주고 [Save and Continue] 버튼을 눌러준다.

 

 

 

 

이제 젠킨스에 접속할 수 있다.

 

 

 

 

Dashboard -> Jenkins 관리 > Plugins에서 추가로 두 개의 플러그인을 설치했다.

체크하고 Install을 눌러준다.

 

- Docker Pipeline: 파이프라인에서 Docker 이미지를 빌드하거나, 컨테이너를 실행, 관리할 수 있도록 해주는 플러그인

- Pipeline Stage View: 파이프라인 실행 기록을 Stage단위로 분할하여 시각적으로 보여주는 플러그인

 

 

 

 

기다리면 잘 설치되는 것을 확인할 수 있다. 기본적인 설정이 완료됐다.

 

 

 

5. 예정

이제 github에서 토큰을 생성해 젠킨스와 연동하고 pipeline을 작성할 예정이다.

반응형