본문 바로가기
Infra & DevOps/CI CD

Linux OS에서 젠킨스 설치 방법

by Jordy-torvalds 2020. 6. 23.
반응형

1. Docker를 설치 합니다. 설치 방법은 공식 사이트의 Docs를 참조하세요.

2. 도커 내 브릿지 네트워크 생성 합니다.

docker network create jenkins

3.다음 볼륨을 생성하여 도커 데몬에 연결하는 데 필요한 도커 클라이언트 TLS 인증서를 공유하고 다음 도커 볼륨 생성 명령을 사용하여 Jenkins 데이터를 유지하세요.

docker volume create jenkins-docker-certs
docker volume create jenkins-data

4.젠킨스 노드 내에서 도커 명령어를 실행하기 위해 도커:DinD의 이미지를를 다운로드 및 실행하세요.

# 명령어 전문
docker container 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

# 세부 옵션 설명
docker container run \
  --name jenkins-docker \                       # ( Optional ) 컨테이너에 이름 할당
  --rm \                                        # ( Optional ) 도커:dind 컨테이너가 shut-down 되면 실행 중이던 컨테이너 또한 삭제
  --detach \                                    # ( Optional ) 백그라운드 모드 실행
  --privileged \                                # 도커에서 도커를 실행하려면 현재 권한을 가진 액세스 권한이 있어야 제대로 작동할 수 있습니다.
  --network jenkins \                           # 해당 도커:dind의 네트워크를 이전에 생성한 jenkins 브릿지 네트워크로 선택
  --network-alias docker \                      # jenkins network 내에서 docker를 호스트명으로 사용
  --env DOCKER_TLS_CERTDIR=/certs \             # 환경 변수 설정
  --volume jenkins-docker-certs:/certs/client \ # 이전에 생성한 도커 볼륨을 다음의 컨테이너 내 경로에 매핑
  --volume jenkins-data:/var/jenkins_home \     # 이전에 생성한 도커 볼륨을 다음의 컨테이너 내 경로에 매핑
  --publish 2376:2376 \                         # ( Optional ) 호스트 머신에 docker:dind의 포트를 노출. 
                                                #              이 옵션은 호스트에서 docker:dind를 컨트롤 하는데 유용하게 해준다.
  docker:dind                                   # docker:dind 이미지 사용

5.jenkinsci/blueocean 이미지 다운로드 및 컨테이너 실행

# 명령어 전문
docker container run \
  --name jenkins-blueocean \
  --rm \
  --detach \
  --network jenkins \
  --env DOCKER_HOST=tcp://docker:2376 \
  --env DOCKER_CERT_PATH=/certs/client \
  --env DOCKER_TLS_VERIFY=1 \
  --publish 8080:8080 \
  --publish 50000:50000 \
  --volume jenkins-data:/var/jenkins_home \
  --volume jenkins-docker-certs:/certs/client:ro \
  jenkinsci/blueocean

  # 세부 옵션 설명
docker container run \
  --name jenkins-blueocean \                       # ( Optional )컨테이너 이름 할당
  --rm \                                           # ( Optional ) 도커:dind 컨테이너가 shut-down 되면 실행 중이던 컨테이너 또한 삭제 
  --detach \                                       # ( Optional ) 백그라운드 모드 실행
  --network jenkins \                              # 해당 도커:dind의 네트워크를 이전에 생성한 jenkins 브릿지 네트워크로 선택
  --env DOCKER_HOST=tcp://docker:2376 \            # 도커 데몬에 연결하기 위한 환경변수. docker, docker-compose 명령어 사용에 필요
  --env DOCKER_CERT_PATH=/certs/client \           # 도커 인증서 위치 환경변수 설정
  --env DOCKER_TLS_VERIFY=1 \                      # 도커 TLS 환경변수 확인 환경변수
  --publish 8080:8080 \                            # 호스트의 8080 와 젠킨스 컨테이너의 8080을 매핑
  --publish 50000:50000 \                          # 호스트의 50000 와 젠킨스 컨테이너의 50000을 매핑
  --volume jenkins-data:/var/jenkins_home \        # 이전에 생성한 도커 볼륨을 다음의 컨테이너 내 경로에 매핑 
  --volume jenkins-docker-certs:/certs/client:ro \ # 이전에 생성한 도커 볼륨을 다음의 컨테이너 내 경로에 매핑 
  jenkinsci/blueocean                              # 다음 이미지를 컨테이너 생성에 사용 
반응형