Docker로 Jenkins + BlueOcean 설치하기 (Windows 기준)

Dev Smile·2025년 4월 9일
1
post-thumbnail

Jenkins는 DevOps 환경에서 가장 널리 사용되는 CI/CD 도구이고 BlueOcean은 이를 좀 더 시각적으로 사용할 수 있게 해주는 플러그인 기반 UI 입니다.
이번 글에서는 Windows 환경의 Docker에서 Jenkins + BlueOcean을 설치하고 실행하는 과정을 정리해보았습니다.

참고 : Installing Jenkins Docker On Windows

1. Docker 전용 네트워크 만들기

먼저 Jenkins와 Docker가 같은 네트워크에서 통신할 수 있도록 전용 bridge 네트워크를 생성합니다.

docker network create jenkins

이 네트워크는 Jenkins 컨테이너와 Docker-in-Docker 컨테이너 간 통신을 위해 사용됩니다.


2. Docker in Docker(DinD) 방식으로 Jenkins 실행

Jenkins 내에서 Docker 컨테이너를 실행할 수 있게 하기 위해서 Docker-in-Docker(DinD)방식을 사용합니다.

  • Docker-in-Docker(DinD)의 필요성
    1. 컨테이너화된 빌드 환경: Jenkins 자체가 컨테이너로 실행될 때, 이 Jenkins 컨테이너 내에서 다른 Docker 컨테이너를 실행하기 위해서는 Docker 엔진이 필요합니다.
    2. 격리된 빌드 환경: 각 빌드 작업이 독립적인 컨테이너에서 실행되어 클린한 환경을 보장합니다.
    3. 파이프라인 자동화: CI/CD 파이프라인에서 애플리케이션을 Docker 이미지로 빌드하고 테스트할 수 있습니다.
docker run --name jenkins-blueocean --restart=on-failure --detach ^
  --network jenkins --env DOCKER_HOST=tcp://docker:2376 ^
  --env DOCKER_CERT_PATH=/certs/client --env DOCKER_TLS_VERIFY=1 ^
  --volume jenkins-data:/var/jenkins_home ^
  --volume jenkins-docker-certs:/certs/client:ro ^
  --publish 8080:8080 --publish 50000:50000 myjenkins-blueocean:2.492.3-1

실행 후, Jenkins와 Docker 간 인증을 위해 필요한 환경 변수도 함께 설정해줍니다.




3. Jenkins Dockerfile 작성

Jenkins 공식 이미지 위에 BlueOcean 및 Docker CLI 플러그인을 설치한 커스텀 이미지를 만듭니다.

FROM jenkins/jenkins:2.492.3-jdk17
USER root
RUN apt-get update && apt-get install -y lsb-release
RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \
  https://download.docker.com/linux/debian/gpg
RUN echo "deb [arch=$(dpkg --print-architecture) \
  signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \
  https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list
RUN apt-get update && apt-get install -y docker-ce-cli
USER jenkins
RUN jenkins-plugin-cli --plugins "blueocean docker-workflow"

4. 커스텀 이미지 빌드하기

위 Dockerfile을 기반으로 Jenkins BlueOcean 이미지를 생성합니다.

docker build -t myjenkins-blueocean:2.492.3-1 .

이 이미지에는 docker-workflow 플러그인이 포함되어 있어, Jenkins 내에서 Docker를 제어할 수 있습니다.



5. Jenkins BlueOcean 컨테이너 실행

이제 커스텀 이미지로 Jenkins 컨테이너를 실행합니다.

docker run --name jenkins-blueocean --restart=on-failure --detach ^
  --network jenkins --env DOCKER_HOST=tcp://docker:2376 ^
  --env DOCKER_CERT_PATH=/certs/client --env DOCKER_TLS_VERIFY=1 ^
  --volume jenkins-data:/var/jenkins_home ^
  --volume jenkins-docker-certs:/certs/client:ro ^
  --publish 8080:8080 --publish 50000:50000 myjenkins-blueocean:2.492.3-1

브라우저에서 http://localhost:8080 접속하면 Jenkins 설치 마법사가 시작됩니다.


6. 설치 마법사 진행

Jenkins 첫 실행 시 아래 경로의 비밀번호가 필요합니다.

docker exec -it jenkins-blueocean /bin/sh
vi /var/jenkins_home/secrets/initialAdminPassword

해당 파일을 열어 비밀번호를 복사하고 Jenkins 설치를 계속 진행하세요.

  1. 플러그인 설치: ‘Install suggested plugins’ 선택


  2. 관리자 계정 생성
  3. Jenkins URL 설정: 우선 Not now 를 선택하고 진행하였습니다.
  4. Jenkins 접속

이제 Jenkins에서 파이프라인을 시각적으로 구성하고 실행할 준비가 완료되었습니다!


마무리

이제 Jenkins와 BlueOcean을 로컬 Docker 환경에서 사용할 수 있습니다.
설정 이후에는 GitHub 또는 GitLab과 연동해서 실제 CI/CD 파이프라인을 구성할 수 있습니다.

0개의 댓글