Jenkins 설치
먼저 Bridge 네트워크를 생성합니다.
sudo docker network create jenkins
Jenkins 이미지에서 docker 명령을 사용하기 위해서는 docker:dind 컨테이너가 필요하며, 이 이미지를 받아 실행합니다.
sudo docker run \
--name jenkins-docker \
--rm \
--detach \
--privileged \
--network jenkins \
--network-alias docker \
--env DOCKER_TLS_CERTDIR=/certs \
--volume jenkins-docker-certs:/certs/client \
--volume jenkins-data:/var/jenkins_home \
--publish 2376:2376 \
docker:dind \
--storage-driver overlay2
Jenkins는 일반적으로 파이프라인 스텝을 이쁘게 표시해주는 blueocean 플러그인과 도커 이미지 빌드에 사용되는 docker-workflow 플러그인을 함께 사용합니다.
위 플러그인을 추가한 상태로 이미지를 빌드하려면 다음의 Dockerfile을 작성합니다.
FROM jenkins/jenkins:2.346.1-jdk11
USER root
RUN apt update && apt 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 update && apt install -y docker-ce-cli
USER jenkins
RUN jenkins-plugin-cli --plugins "blueocean:1.25.5 docker-workflow:1.28"
도커 이미지를 빌드합니다.
sudo docker build -t jenkins-blueocean:2.346.1-1 .
빌드된 이미지를 실행합니다.
sudo 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 jenkins-blueocean:2.346.1-1
최초 관리자 설정
브라우저에서 http://domain.com:8080 주소에 접속하여 최초 관리자 비밀번호를 입력합니다. (관리자 비밀번호는 생성된 컨테이너의 /var/jenkins_home/secrets/initialAdminPassword 파일에 기록되어 있습니다.)
표시된 두 가지 옵션 중 하나를 선택하여 설치를 진행합니다. [Install suggested plugins]를 선택하면 일반적으로 사용하는 플러그인이 일괄 설치됩니다.

