본문 바로가기

Jenkins

[Jenkins] Docker Jenkins로 Spring Boot 빌드 및 배포 - 1 (Jenkins 권한 및 플러그인 설정)

 

시스템 환경

  • jenkins 인스턴스 (ec2 ubuntu 20.04)
  • server 인스턴스 (ec2 ubuntu 20.04)
  • 개발 데스크탑 (mac 12.0.1)

 

구현할 파이프라인 구조

  1. 개발 데스크탑에서 코드 작성 후 github push
  2. github에서 webhook -> jenkins instance
  3.  jenkins 파이프라인실행
    1. git clone
    2. gradle build
    3. docker build
    4. docker image push
    5. jenkins 인스턴스에서 server 인스턴스로 ssh 접속
    6. server 인스턴스 docker image pull
    7. server 인스턴스 docker image run
    8. server 인스턴스 기존에 같은 서비스 존재 시 기존 서비스 종료
  4. jenkins에서 메일 또는 슬랙으로 결과 전송

 

Docker jenkins 이미지 설치 및 기본 설정

 

[Jenkins] Docker Jenkins 이미지 설치 및 기본 설정

환경 ubuntu 20.04 docker 20.10.11 jenkins image lts 같이 읽어보면 도움될 글 Jenkins란? Jenkins를 사용하는 이유 및 Declarative pipeline 문법 [Jenkins] Jenkins란? Jenkins를 사용하는 이유 및 Declarati..

kanoos-stu.tistory.com

 

Docker jenkins dood 설정

 

[Docker] 도커 컨테이너에서 도커 이미지 빌드 (with jenkins)

발단 docker 환경에서 jenkins를 이용하여 pipeline구축 시 docker 이미지를 빌드해야하는 경우가 생긴다. 이때 jenkins를 docker로 실행시키지 않는다면 권한 부여만으로 해결이 가능하지만 jenkins를 docker이

kanoos-stu.tistory.com

 

Jenkins에서Docker plugin 설치 및 github 접근 권한 부여

Docker plugin을 설치

jenkins 파이프라인이 실행되면서 도커를 편리하게 사용하기 위해 docker plugin을 설치해야한다.

Dashboard -> Jekins 관리 -> 플러그인 관리 -> '설치 가능' 에서 docker를 검색하여 아래 두 개의 플러그인을 체크한다.

 

선택 후 하단의 'Download now and inistall after restart' 버튼을 눌러주면 플러그인을 설치하는 화면으로 전환된다.

체크박스를 체크하면 설치가 되면 자동으로 Jenkins가 재시작 된다.

 

github 접근 권한 부여

코드를 githup에 push 후 jenkins가 해당 코드를 clone받기 위해서는 해당 계정에 접근 권한이 있어야한다.

기존에는 github 권한을 github 계정 username과 password로 가능했지만 정책이 변경되어 권한을 부여받기위해서는 Personal access tokens이 필요하다.

먼저 github 계정에 접속 후 

프로필 선택 -> settings -> Developer settings 선택

좌측 탭 Personal access tokens -> Generate new token 클릭

해당 페이지는 외부 서비스에서 해당 계정으로 접근 시 선택한 권한들을 부여해주는 키를 만드는 페이지이다.

jenkins는 저장소관련 권한만 있으면 되므로 repo만 선택하고, Expiration은 만료기간, Note에는 자신이 알아볼 수 있는 이름을 지정한다.

입력 후 하단의 'Generate token' 버튼을 선택하면 생성된다.

키는 한 번 노출 후 다시는 확인할 수 없으니 꼭 복사해서 메모나 백업해어야한다.

 

그리고 다시 jenkins로 돌아와  Dashboard -> ManageCredentials

Jenkins 선택 -> Gloabl credentials 선택을 하게되면 credential을 생성하는 페이지가 나온다.

해당 페이지에서는 jenkins agent 전역에서 사용될 에서 사용될 인증 정보 등을 생성할 수 있다.

Username - github 계정 id, password - Persnal access token, ID는 jenkins 파이프라인에서 해당 credencial을 가져올때 사용할 이름을 작성해주면 된다.

 

docker hub 접근 권한 부여 (계정 정보 입력)

파이프라인 단계의 docker push 및 docker pull 시에 docker hub의 계정 권한이 필요하므로 jenkins에 계정 정보를 입력해준다.

계정이 없다면 가입 후 진행

 

Docker Hub Container Image Library | App Containerization

We and third parties use cookies or similar technologies ("Cookies") as described below to collect and process personal data, such as your IP address or browser information. You can learn more about how this site uses Cookies by reading our privacy policy

hub.docker.com

github와 마찬가지로 Credential 생성화면까지 들어간다.

Username - docker hub 계정 Id, Password- docker hub 계정 password, ID - 파이프라인 작성 시 사용할 이름

 

여기까지 진행하였다면 jenkins에서 plugin을 사용하여 git과 docker hub의 접근이 가능하게 되었다.

 

내용이 길어지는 관계로 코드작성은 다음 글에서 계속

 

[Jenkins] Docker Jenkins로 Spring Boot 빌드 및 배포 - 2 (파이프라인 작성 및 빌드 테스트)

시스템 환경 jenkins 인스턴스 (ec2 ubuntu 20.04) server 인스턴스 (ec2 ubuntu 20.04) 개발 데스크탑 (mac 12.0.1) 구현할 파이프라인 구조 개발 데스크탑에서 코드 작성 후 github push github에서 webhook ->..

kanoos-stu.tistory.com