본문 바로가기
개발/Docker

[Docker] Jenkins&Tomcat 자동화 배포(SVN) -3

by KIMECK 2020. 10. 7.
반응형

 | 젠킨스란? 

  젠킨스는 소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 툴이다. 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

댓글