ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • gitlab ci 로 maven tomcat war 배포
    개발환경 2019. 8. 17. 18:54

    아 역시 별거 아니였는데 시간을 5시간 정도 날린거 같다.

    gitlab 운영하는게 부담스러워서 무료 배포툴 조합으로 해볼려고 했지만 

    역시 쉽지 않아서 그냥 당분간은 gitlab 로 전념하기로 하고 

    docker 배포가 아닌  tomcat manager를 통한 war 배포 스크립트를 작성해보기로 했다. 

    찾아보니 친절하게 mvn tomcat7:deploy 가 있었다. 

    "아 이거다 금방하겠네" 싶었는데 

    하다보니 gitlab-runner 가 실행되는 서버에 JDK 및 maven 설치가 필요했고 

    아무나 tomcat-manager 에 접근하지 못하도록  manager 경로 ip 제한 조치가 필요했다. 

    그리고 한참작업진행중에 mvn 빌드가 아무리 봐도 느린거 같아서 다시 docker 빌드를 잠깐 알아보다  gitlab registry 셋팅에 빠져서 한참 헤매다가  다시 접고 초심으로 돌아 왔다.  

    암튼 기존 jenkins 를 이용해서 tomcat 배포를 하던 프로젝트여서   

    pom.xml 에 몇가지 추가 설정이 필요했다. 

    자세한 설명이 나와있는글 

    https://www.mkyong.com/maven/how-to-deploy-maven-based-war-file-to-tomcat/

    https://www.dontpanicblog.co.uk/2014/06/25/deploying-to-tomcat-7-with-maven/

    내용을 보면 pom.xml 에 톰캣 manager id/password 를 삽입하지 않고 maven 경로 conf 에 넣도록 하고 있었는데 

    일단 난 로컬에서 테스트 해볼려고 

    그냥 id/비번 넣고  

    maven goals 에  tomcat7:deploy 넣고 했는데 여기서 부터 문제가 터지기 시작하였다. 

    일단  tools.jar 가 없다고 뜬다! 

    찾아보니 jdk 경로를 바꿔주라고 해서 일단 이건 비교적 쉽게 해결! 

    첨에 jre 를 보던것을 jdk 폴더로 바꿨다. 

    그리고 다음 만난 에러는 

    war 빌드까지 완료 된 이후 

    ...I/O exception (java.net.SocketException) caught when processing request: Connection reset

    서버쪽에서 커넥션을 끊어내는 듯한  이런 에러가 계속 뜨는 상황. 

    이걸로 한 2시간 날렸는데 결론은 내가 context 를 /  경로로 배포를 하려고 하는데

    이미 같은 경로에 동작중인게 있으니 튕겨내는 거였다. 

    제길슨! 그럼 에러 메시지를 좀 친절하게 이미 배포된 경로는 undeploy 하라고 얘기해주면 좀 좋냐고 ㅠㅠ 

    암튼 mvn tomcat7:undeploy  명령어 먼저 실행하고 이후 deploy 하니 그냥 해결! 

    그래서 gitlab-ci.yml 파일에도

    stages:
      - build
     
    cache:
      paths:
        - .m2/repository
    
    uild:
      stage: build
      script:
          - mvn tomcat7:undeploy 
          - mvn tomcat7:deploy 
    
      after_script:
          - echo 'build success!'
          
      tags:
        - build-runner  
        
      only:
        - master
    

    이렇게 작성하니 성공!

    어찌됐던 동작하니 기분은 좋네 ㅎㅎ

    '개발환경' 카테고리의 다른 글

    윈도우 11 관련  (0) 2023.02.07
    이클립스 JDK 버젼별 호환  (0) 2021.09.01
    aws ami 에 maven 설치  (0) 2019.08.17
    JAVA 프로젝트 -> Maven 변환기록  (0) 2018.08.14
    사용하지 않는 코드 찾는 이클립스 플러그인  (0) 2018.08.10

    댓글

Designed by Tistory.