| 젠킨스란?
젠킨스는 소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 툴이다. CI(Continuous Integration) 툴 이라고 표현한다.
다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유영역에 있는 저장소에 빈번히 업로드함으로써 지속적 통합이 가능하도록 해준다.
( 출처: https://ict-nroo.tistory.com/31 [개발자의 기록습관] )
| 도커 기반 젠킨스 설치 & 자동화 배포 설정 (SVN)
* 젠킨스 설치
# sudo docker pull jenkins/jenkins:lts
위와 같이 설치를 진행한다.
* TimeZone 설정 및 -p 포트, -v 경로 설정하여 컨테이너화 ( 8080 사용 )
# docker run -d -p 8080:8080 -v /jenkins:/var/jenkins --name jenkins_test -e TZ=Asia/Seoul -u root jenkins/jenkins:lts
* 젠킨스 컨테이너 실행
# sudo docker start jenkins_test
* 도커 -젠킨스 접속
# sudo docker exec -it jenkins_test /bin/bash
* 젠킨스 비밀번호 찾기
- 웹으로 접속하여 경로를 확인해도 된다.
# cat /var/jenkins/secrets/initialAdminPassword
ex ) Password : 50cdee978478469fbc4d5fd99dad4565
* 젠킨스 웹 접속
http://localhost 혹은 ip : 포트번호
로 접속 하면 아래와 같은 창이나옴
* 위 비밀번호 입력하여 추가 설치
* 완료 후 계정 생성
* 추가 플러그인 설치
- SVN 과 톰캣 자동배포 그리고 Slack 메시지 연동을 사용하기위해
> Deploy to container / subversion / Slack Notification Plugin 플러그인 설치
젠킨스 관리 - 설치 가능 탭에서 검색하여 설치한다.
* JDK 및 Maven 설정
젠킨스 관리 - Global Tool Configration
JDK 탭에서 ADD > Name 입력 > JAVA_HOME 란에 경로입력 ( /usr/local/openjdk-8 )
MAVEN 탭에서 ADD > Name 입력 > Install 체크 > 버전 선택
SAVE
* 새 프로젝트(아이템) 생성
새로운 item - free style 프로젝트 생성
소스코드 관리 – Subversion – SVN URL 입력
Credentials 란 || Add – SVN 로그인 정보입력 추가
> 등록된 정보 셀렉트박스 선택
Build – invoke top 선택, Goals 란 –clean package 입력 후 저장
하단 고급 탭 – POM.xml 경로 설정 (ex . 루트기준 /pom.xml)
빌드 유발 탭 - 자동화 빌드 설정
Poll SCM 체크 > Schedule 란에 “ H/10 * * * * ” 추가 (매 10분마다 푸시된 내역 있으면 자동 빌드 진행)
** Cron 표현식으로 수정
참고 : www.cronmaker.com/;jsessionid=node0ci0wvwe6nauyc6et2oh3zhfj24782.node0?0
빌드 후 조치 – Deploy war/ear ... 선택
- WAR/EAR Files 란에 루트 기준 war 경로 입력 ( ex. **/target/*.war )
* 오류 발생 할 경우 빌드 시 로그에 .war 경로 체크
- Context Path 란 ‘ / ’ ( ROOT ) 혹은 ‘/프로젝트명’ 입력
- Containers 에 Tomcat 8.x 선택
- Credentail 에 Add 클릭 하여 Tomcat 에서 users.xml에 설정한 사용자(매니저) 정보 입력 추가
- 하단 Tomcat URL 란 ex) http://아이피:8081 입력
저장 - Build Now 해보면
이렇게 하면 빌드는 되는데 배포에서
오류 발생(기억 안남)하는 경우가 발생해서 프로젝트 파일 수정을 해야한다.
* 프로젝트 내 POM.xml 수정
프로퍼티 추가
- 외부라이브러리 사용 시 (web.lib) 경로 추가 / UTF-8 인코딩 추가
<properties>
<web.lib>${basedir}/src/main/webapp/WEB-INF/lib</web.lib>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
- 에러 발생한 라이브러리(.jar) 수동 추가
: systemPath 경로 작성 나머진 무관
<dependency>
<groupId>com.ExamJava</groupId>
<artifactId>ExamJava</artifactId>
<version>2.7</version>
<scope>system</scope>
<systemPath>${webapp.lib}/ExamJava.jar</systemPath>
</dependency>
* 빌드 테스트
빌드 - #Num - Console Output 으로 아래와같이 로그를 확인할 수 있다.
톰캣 서버로 접속 해보면 잘 나오는 것을 확인 할 수 있다.
'개발 > Docker' 카테고리의 다른 글
[Docker] Tomcat 톰캣 설치 - 2 (0) | 2020.10.08 |
---|---|
[Docker] 도커 설치 - CentOS 7 ( JDK 설치 ) -1 (0) | 2020.10.07 |
댓글