Java에서 개발한 웹 애플리케이션을 Jenkins를 사용하여 자동 배포 [SpringBoot 앱편]

CI/CD를 실천하기 위해 Jenkins에서 Artifacts를 생성하여 애플리케이션 서버에 배포하는 곳까지 설정해 보았습니다.

소스 코드와 서버 구축은 이 준비편에 써 있습니다.
Tomacat 서버에 자동 배포하려면 Tomcat 앱편을 참조하십시오.

Jenkins의 직업 흐름 1


  • 소스 코드 체크 아웃
  • Maven에서 빌드를 실행하고 jar 파일 출력
  • jar 파일을 JVM 서버로 전송
  • jar 파일 실행

  • 소스 코드 체크아웃



    소스 코드도 관리에서 Git을 선택하고 준비 편에서 준비한 Github 저장소을 체크 아웃합니다. 2
    branch는 */master를 지정합니다.

    Maven에서 빌드를 실행하고 jar 파일을 출력합니다.



    쉘 실행을 선택하고 ./mvnw 명령으로 실행하십시오.

    빌드는 maven을 사용하지만 Mave 작업이 아닌 리포지토리에 포함된 MavenWrapper에서 실행합니다.
    또한 리포지토리에는 두 개의 프로젝트가 있으므로 현재 디렉토리를 WebSpringBoot로 이동 한 다음 실행합니다.
    cd WebSpringBoot
    ./mvnw clean package
    

    Maven을 실행하면/WebSpringBoot/target에 web-spring-boot.jar이 생성됩니다.

    jar 파일을 JVM 서버로 전송



    쉘 실행을 선택하고 JVM 서버에 SSH로 연결한 다음 생성한 Artifacts:web-spring-boot.jar을 배치합니다.
    또 전송한 jar 파일은 이하의 이유에 의해, 풀 액세스(rwx)로 합니다.
  • 지속적인 배포를 위해 파일을 덮어쓸 수 있습니다.
  • JVM 서버의 서비스에서 자체 시작 3이므로 파일 실행을 허용합니다.
  • # SCPコマンドでJankinsからJVMサーバーにjarファイルを転送する
    scp -i ~/.ssh/id_rsa WebSpringBoot/target/web-spring-boot.jar [email protected]:/var/jvm
    # 実行権限を付与する
    ssh -i ~/.ssh/id_rsa [email protected] sudo chmod 700 /var/jvm/web-spring-boot.jar
    

    jar 파일 실행



    쉘 실행을 선택하고 JVM 서버에 SSH로 연결하여 애플리케이션 서비스를 다시 시작합니다.ssh -i ~/.ssh/id_rsa [email protected] sudo systemctl restart app
    Jenkins 작업 실행이 성공하면 다음 URL에서 응용 프로그램 실행을 확인할 수 있습니다.
    http://192.168.33.20:8080/

    빌드 설정 화면





    참고



    Installing Spring Boot Applications(from Spring Boot Reference)
    Spring Boot Reference Guide



    이번에는 굳이 명령 실행으로 빌드와 배포를 하고 싶었기 때문에 쉘의 실행 태스크를 이용했습니다. 

    이 리포지토리에는 war용 WebSpringMvc와 jar용 WebSpringBoot라는 두 개의 Maven 프로젝트가 포함되어 있습니다. 이번에는/WebSpringBoot를 이용합니다. 

    jar를 실행 가능하게 하려면, spring-boot-maven-plugin의 executable 설정을 true로 해 두십시오 

    좋은 웹페이지 즐겨찾기