Springboot WAR 수동 배포하기

스프링부트에서는 기본적으로 Jar 파일을 지원하지만 외부 톰캣을 사용하기 위해(JSP를 사용하기 때문에) war를 사용하는 경우가 있었다. 지금 회사 프로젝트는 모두 외부 톰캣을 사용하기 때문에 수동으로 배포하는 법을 기록 해놓는다.

프로젝트를 war로 export

pom.xml에서 war 파일 설정

<packaging>war</packaging>

pom.xml을 수정하였다면 Maven을 통해 빌드하거나 수동으로 프로젝트를 추출한다. 나같은 경우에는 메이븐을 사용하여 추출하지는 않았다.

프로젝트 -> export-> web-> WAR file 선택

이후에 프로젝트 이름과 경로를 지정하면 지정된 위치에 프로젝트명.war 파일이 생김

FTP 프로그램을 사용하여 프로젝트 전송

파일질라, WinSCP 어떤 프로그램을 사용하여도 상관 없음 설치된 리눅스 서버에 접근할수 있는 프로그램에서 프로젝트를 전송한다. 회사에서는 톰캣 내부경로를 사용하지 않고 별도의 톰캣폴더를 만들어서 넣어주고 있어 해당 위치에 파일을 넣었다.

기존에 배포가 되고 있는 프로젝트가 있다면 ROOT 폴더와 배포되고 있는 WAR 파일이 있을텐데 삭제하여야 톰캣이 작동할 때 새로 프로젝트를 업데이트 한다.

Tomcat Server.xml 수정

vi 편집기를 이용하여 톰캣설치경로/conf/server.xml의 내용을 수정한다.

별도 경로가 설정되어 있지 않다면 host 부분의 appBase가 기본값인 webapps(복수형)로 되어 있을 텐데 이부분을 원하는 경로로 변경해 주어야 한다.

그리고 추가할 프로젝트의 값을 넣어준다. docBase에는 배포할 war 파일 또는 압축이 풀린 디렉터리의 경로를 넣는다.

<Context path="" docBase="프로젝트명" reloadable="true">

톰캣에 프로젝트 파일을 옮겼다면 톰캣을 다시 실행시킨다.

Tomcat log 실시간 확인

배포중 문제가 생겨서 톰캣의 로그를 확인하고 싶다면 다음 명령어를 실행하면 된다.

tail -f /home/tomcat/logs/tomcat/catalina.out

톰캣 로그 경로를 별도 설정하였기 때문에 이런 상태이고 상황에 맞추어 catalina.out을 tail -f로 열면 실시간으로 로그를 볼수 있다.

실시간으로 보는 것을 중지하려면 Ctrl + c 를 누르면 된다.