반응형

앞 포스트에서는 도커 컴포즈가 무엇이고 어떻게 스크립트를 작성하는지 알아봤습니다. 도커 컴포즈에 대해서 잘 모르겠다 싶으시면 앞의 포스트를 확인해주세요. https://junlab.tistory.com/219

 

[docker] 도커 컴포즈란? 예제 및 기본 사용법 (docker-compose)

도커 컴포즈를 알아보기 위해서는 기본적인 도커의 사용 이유와 예제 및 구동 방법을 알고 있으셔야 됩니다. 기본 내용은 앞의 게시물을 확인해주세요 :) - https://junlab.tistory.com/216 [docker] 도커 사

junlab.tistory.com

이번 포스트에서는 도커 컴포즈를 활용하여 젠킨스를 구동하도록 하겠습니다.

젠킨스 구동을 위해서 스크립트를 하나 만들어주세요.

1. docker-compose.yml

version: "3"
services:
  master:
    container_name: master
    image: jenkinsci/jenkins:2.150.1-slim
    ports:
      - 8080:8080
    volumes:
      - ./jenkins_home:/var/jenkinse_home

앞전의 기본 스크립트에서 못 본 volumes가 있습니다.

volumes

호스트의 jenkine_home 디렉터리를 젠킨스 컨테이너의 /var/jenkinse_home에 공유할 수 있는 구문입니다.

Dockerfile의 COPY 명령어는 복사기능이지만, docker-compose volumes는 공유를 합니다.

 

명령어를 통해서 컨테이너를 구동하겠습니다.

docker-compose pull
docker-compose up

2. localhost:8080 접속

컨테이너 설치 중 스크립트를 보시게 되면 다음과 같은 모습이 있습니다.

중간에 패스워드가 존재하는데 패스워드를 복사하여 입력해주세요

 

다음으로 Install suggested plugins를 클릭하여 젠킨스 설치를 진행해주세요.

위의 설치 화면이 끝나고 설치가 완료되지 않은 패키지 항목이 존재한다고 합니다.

그럼 Retry를 누르지 않고 그냥 설치를 진행해주시면 아래의 완료된 모습을 보실 수 있습니다.

 

3. 슬레이브 젠킨스 컨테이너 생성

젠킨스를 사용할 때는 흔히, 2개의 서버로 운영을 합니다.

마스터 : 관리기능이나 작업 실행 지시

슬레이브 : 작업을 실제로 진행

마스터가 슬레이브와 데이터를 주고받을 수 있도록 ssh 키를 생성하겠습니다.

 

컨테이너가 실행 중인 상태에서 아래 명령어를 입력해주세요.

docker container exec -it master ssh-keygen -t rsa -C ""

 

docker exec -it master bash 명령어를 통해서 /var/jenkins_home/.ssh/ 경로로 이동 후 id_rsa.pub를 확인해주세요.

docker exec -it master bash
cd /var/jenkins_home/.ssh/ 
cat id_rsa.pub

 

위의 명령어를 통해서 공개키 값을 확인 후에 yml파일에 slave를 만들겠습니다.

version: "3"
services:
  master:
    container_name: master
    image: jenkinsci/jenkins:2.150.1-slim
    ports:
      - 8080:8080
    volumes:
      - ./jenkins_home:/var/jenkinse_home
    links:
      - slave01

  slave01:
    container_name: slave01
    image: jenkinsci/ssh-slave
    environment:
      - JENKINS_SLAVE_SSH_PUBKEY= ssh-rsa AA...

 

links: master에 slave01에 대한  링크를 설정했습니다. master에서 slave01이라는 이름으로 슬레이브를 찾아갈 수 있습니다.

다시 정리를 하자면

1. ssh 공개키 생성

2. 젠킨스 환경변수인 JENKINS_SLAVE_SSH_PUBKEY 추가

3. links 추가

 

slave컨테이너를 추가했으니 compose 명령어를 통해서 컨테이너를 구동하겠습니다.

docker-compose up -d
docker-compose ps

 

이상으로 master와 slave 컨테이너 2개가 정상적으로 생성된 모습을 보실 수 있습니다.

도커 컴 포즈 및 젠킨스 세팅 방법을 학습했으니 필요에 따라서 젠킨스 학습을 더욱 진행을 했으면 좋겠습니다.

감사합니다.

반응형

+ Recent posts