[CI/DI] 자동 배포를 위한 방법(with docker, jenkins, github)

2019. 12. 5. 16:28개발/OVPS

반응형

1. Docker 기반 Jenkins 설치

  • cmd 창 이동 및 해당 명령어
 docker run -d -p 8080:8080 --name jentinsdocker -u 0 -v //var/run/docker.sock:/var/run/docker.sock  jenkinsci/blueocean 

: : docker 기반으로 자동으로 이미지를 다운받고 컨테이너를 생성 한다.

:: -d : 백그라운드 run

:: 8080:8080 : 왼쪽(host port), 오른쪽(컨테이너안에서 설정한 port) Port 포워딩

:: --name : 컨테이너 이름

:: -u 0 : root라는 권한를 주는 것 (컨테이너 안에서 각 종 명령어를 사용하기 위한 것)

:: -v //var/run/docker.sock:/var/run/docker.sock : 컨테이너 안에서 docker 명령어를 쓰기 위한 sock 연결

  • jenkins 키
    jenkins_initialAdminPassword_check
  • jenkins 키 확인
    jenkins_initialAdminPassword_setting

2. Jenkins + docker + gradle + github 를 이용한 자동 배포 (CI/CD)

  • jenkins, pipeline 만들기(SCM)

1) 새로운 Item 선택

2) 이름 작성 및 Pipeline 선택 후 저장

jenkins_item_add

3) 아이템 클릭 후 "Plpeline" 텝 이동 및 설정

  • Definition > Pipeline script from SCM 선택

  • Repositories에 Repository URL (github 주소) , Credentials (계정), Branch Specifier (브랜치) 설정

  • Script Path JenkinsFile.groovy 위치 설정 (기본 값 Project root) 및 저장

jenkins_item_pipeline_setting

4) Repository Credentials 설정

  • Username, Password, ID를 입력

jenkins_item_pipeline_setting_credentional

5) Build Triggers 설정

  • Poll SCM: 소스 변경시 자동 Build 트리거

jenkins_item_trigger

6) JenkinsFile

  • Jenkins가 Build 할 때 참조하는 파일

  • 프로젝트의 루트 경로에 위치

JenkinsFile&DockerFile

7) DockerFile

  • docker가 Build 할때 참조하는 파일

  • JenkinsFile.groovy와 동일하게 프로젝트의 루트 경로에 위치

반응형