본문 바로가기
CI , CD/Docker

Docker 를 이용한 CI 구축 -1 ( Docker jenkins 설치)

by 봄석 2019. 4. 16.

Docker 를 이용한 CI 구축

여태 CI를 경험해본적이 없어 연습을 해봐야겠다고 생각을 하였습니다.
개인 서버가 별도로 없어서 어디에 구축을 해야하나 고민하던 중, 도커가 생각나서 도커에 구축하여 같이 연습을 하게 되었습니다.
도커와 젠킨스 초보이다보니 잘못된 내용이 있을 수 있습니다.

 

 

먼저 도커를 설치하지 않았다면 아래 링크를 참고하여 설치하면 됩니다 .

https://beomseok95.tistory.com/176

 

Docker 설치하기

도커 설치하기 (Mac OS) 1. 터미널창에 아래 명령어를 입력하여 도커를 다운받습니다. 도커의 클라이언트만 설치한 것이라고 할 수 있습니다. brew install Docker 2. 설치가 완료되었으면 아래 명령어로 제대로..

beomseok95.tistory.com

 

 

 

1. 도커 컨테이너 설치( Jenkins)

도커를 선택한후 , 도커의  Kitematic 을 클릭하여 실행합니다 . 설치되어 있지않다면 설치해주시면 됩니다 .

 

2. Kitematic 의 컨테이너 목록에서 젠킨스를 찾아 CREATE 를 눌러 설치합니다 .

3.  설치진행

4.  아래와 같이 다운로드가 완료되면 터미널을 열어 잘설치되었는지 확인합니다 .

docker ps -a

위 명령어를 통해  도커 전체 컨테이너 리스트를 확인합니다 .

 

 

위 사진과 같이 나오게 되면 설치가 잘 진행된 것입니다 .

젠킨스 컨테이너의 8080포트가 localhost의 32771 포트로 연결되었음을 확인할 수 있습니다.

브라우저를 열어 localhost:32771 로 접속하겠습니다.
접속하시면 아래와 같이 젠킨스의 비밀번호를 입력하는 페이지가 출력됩니다.

 

5.  비밀번호 입력 

 

화면에 출력된 경로에 가면 젠킨스 비밀번호가 있습니다. 직접 젠킨스 컨테이너에 접속하여 비밀번호를 찾아보겠습니다.
터미널을 열어 아래처럼 입력하겠습니다.

docker exec -it jenkins /bin/bash

 

 

명령어 입력 후, 젠킨스 컨테이너에 bash로 접속된 것을 확인할 수 있습니다.
경로를 따라 패스워드를 찾겠습니다.

 

cat /var/jenkins_home/secrets/initialAdminPassword

위 코드와 같이 입력하게되면  비밀번호를 알 수 있고 , 그 비밀번호를 웹에 입력해주면 됩니다 .

 

 

6.  플러그인 설치 

출력된 패스워드를 브라우저에 입력하시면 젠킨스 설치페이지로 이동하게 됩니다.
여기서 install suggested plugins 를 선택하시면 많이 사용되는 플러그인들이 포함되어 자동 설치되니 install suggested plugins로 설치해주도록 합니다 .

 

 

※주의

Jenkins 관리에 들어갔을때 위 처럼

기존의 버전 image에 있는 jenkins의 버전이 낮아 업데이트가 필요하다면

 Jenkins container에 있는 war을 업데이트 하고 설정을 시작해야 합니다 .

 

도커 컨테이너에 들어와있다면 exit 명렁어를 입력하여 컨테이너밖 터미널로 나옵니다 .

 

docker exec -it -u 0 "container name" /bin/bash

터미널에 위 명령어 를 입력하여 root 권한으로 컨테이너로 진입합니다

docker container 내부에서 작업해야 하기 때문에 루트권한이 필요하고  ' -u 0 '   이 루트 권한 획득입니다 .

 

cd /tmp
wget "Jenkins War Url"  


 	// url ex :http://updates.jenkins-ci.org/download/war/2.164.2/jenkins.war //

tmp 폴더로 이동 후, jenkins.war 파일을 다운받습니다 .

 

mv ./jenkins.war /usr/share/jenkins

기존에 있는 war 파일을 업데이트 된 war 파일로 교체해주고

 

chown jenkins:jenkins /usr/share/jenkins/jenkins.war

권한 문제를 해결해 줍니다 .

 

exit
docker restart "container name"

// container name ex : ' jenkins ' 

 

그 후 컨테이너를 재 실행 시켜주면

 

성공적으로 업데이트 된 것을 확인할 수 있습니다 .

 

 빨간박스가 신경쓰이니 이제 에러를 잡아봅시다

“Warnings have been published for the following currently installed components. “

plugin 관련 에러인데 설치 중에 pipline 쪽에서 에러가 있더니 이런 문제가 발생했나 봅니다. 플러그인 업데이트를 하고 재시작을 해줍시다.

뭔가 기분 좋은 화면입니다…

빨리 들어가면 이런 화면을 볼 수 있습니다.

오 잡혔네요 이제 마지막 이슈만 잡아봅시다 API 토큰 문제인데요. 레거시 토큰을 제거하면 해결됩니다.

댓글