홈서버 구축 (미니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을 작성할 예정이다.

    반응형
    프로필사진

    남건욱's 공부기록