[DevOps] CI/CD
본 포스팅은 인프런 - Dowon Lee 님의 Jenkins를 이용한 CI/CD Pipeline 구축 강의를 듣고 정리한 내용입니다.
CI (Continuous Integration)
- 작업된 코드의 컴파일, 테스트, 패키징 작업이 포함
CD (Continuous Deployment)
- CI에 의해서 패키징된 결과물을 서버에 배포하는 작업
- 지속적인 배포와 지속적인 제공
JenKins
- CI/CD 툴
- 소프트웨어 개발 시 지속적 통합 서비스를 제공하는 툴이다. 다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유 영역에 있는 Git등의 저장소에 빈번히 업로드함으로써 지속적 통합이 가능하도록 해 준다
- 젠킨스 이미지 다운로드
docker pull jenkins/jenkins
// docker pull [계정]/[리파지토리]
- 젠킨스 실행
docker run -d -p 8080:8080 -p 50000:50000 --name jenkins-server --restart=on-failure jenkins/jenkins:lts-jdk11
// docker run -d -p [컨테이너 바깥 포트]:[컨테이너 내부 포트] -p [컨테이너 바깥 포트]:[컨테이너 내부 포트] --name [컨테이너 이름] --restart=on-failure [계정]/[리파지토리]:[버전]
// -d (detach 모드. 백그라운드, 데몬형태로 기동) -v jenkins_home:/var/jenkins_home/jenkins/jenkins:lts-jdk11 (로컬에 마운트)
- 도커 컨테이너 프로세스 확인
docker ps
- 로그 확인
docker logs jenkins-server
// 초기패스워드 확인
- 도커 컨테이너에 터널링으로 접속
docker exec -it jenkins-server bash
- 젠킨스 설치
127.0.0.1:8080 접속하여 진행
- 젠킨스 프로젝트 생성
- 프로젝트 빌드 및 console 확인
Jenkins - Git, Maven 연동
Jendkins Dashboard > Jenkins 관리 > 플러그인 관리
- github 설치 확인
- maven 설치 확인
- Global Tool Configuration 에 추가
Jendkins Dashboard > Jenkins 관리 > Global Tool Configuration
Git 연동 프로젝트 생성
- 프로젝스 생성
Dashboard > 새로운 item > maven project 선택 > ok
- git source code 및 branch 입력
- build 옵션
Root POM > pom.xml 파일이 프로젝트 Root 가 아닌 위치라면 해당 위치로 수정.
Goals and options > clean compile package (기존 빌드된 내용을 지우고 새롭게 컴파일하여 패키지 파일을 만듬)
작성 완료 후 저장, 지금빌드
도커 콘솔로 이동 (docker exec -it [컨테이너 이름] bash
cd /var/jenkins_home/workspace/[프로젝트명]/target
war(혹은jar) 파일 확인