Jenkins는 DevOps 환경에서 가장 널리 사용되는 CI/CD 도구이고 BlueOcean은 이를 좀 더 시각적으로 사용할 수 있게 해주는 플러그인 기반 UI 입니다.
이번 글에서는 Windows 환경의 Docker에서 Jenkins + BlueOcean을 설치하고 실행하는 과정을 정리해보았습니다.
먼저 Jenkins와 Docker가 같은 네트워크에서 통신할 수 있도록 전용 bridge
네트워크를 생성합니다.
docker network create jenkins
이 네트워크는 Jenkins 컨테이너와 Docker-in-Docker 컨테이너 간 통신을 위해 사용됩니다.
Jenkins 내에서 Docker 컨테이너를 실행할 수 있게 하기 위해서 Docker-in-Docker(DinD)방식을 사용합니다.
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 간 인증을 위해 필요한 환경 변수도 함께 설정해줍니다.
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"
위 Dockerfile을 기반으로 Jenkins BlueOcean 이미지를 생성합니다.
docker build -t myjenkins-blueocean:2.492.3-1 .
이 이미지에는 docker-workflow
플러그인이 포함되어 있어, Jenkins 내에서 Docker를 제어할 수 있습니다.
이제 커스텀 이미지로 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 설치 마법사가 시작됩니다.
Jenkins 첫 실행 시 아래 경로의 비밀번호가 필요합니다.
docker exec -it jenkins-blueocean /bin/sh
vi /var/jenkins_home/secrets/initialAdminPassword
해당 파일을 열어 비밀번호를 복사하고 Jenkins 설치를 계속 진행하세요.
Not now
를 선택하고 진행하였습니다.이제 Jenkins에서 파이프라인을 시각적으로 구성하고 실행할 준비가 완료되었습니다!
이제 Jenkins와 BlueOcean을 로컬 Docker 환경에서 사용할 수 있습니다.
설정 이후에는 GitHub 또는 GitLab과 연동해서 실제 CI/CD 파이프라인을 구성할 수 있습니다.