Home Travis 자동배포화 (4)
Post
Cancel

Travis 자동배포화 (4)


1. Spring boot Jar 저장 폴더 생성

1
mkdir /home/ec2-user/app/travis/jar

2. 배포 Script생성

  1. Script 생성
    1
    
    vi /home/ec2-user/app/travis/deploy.sh
    

    Script 코드

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    
    #!/bin/bash
        
    REPOSITORY=/home/ec2-user/app/travis
    PROJECT_NAME=Travis
    
    echo "> Build 파일 복사"
    
    cp $REPOSITORY/build/build/libs/*.jar $REPOSITORY/jar
    
    echo "> 현재 구동중인 애플리케이션 pid 확인"
    
    CURRENT_PID=$(pgrep -fl Travis | awk '{print $1}')
    
    echo "현재 구동중인 어플리케이션 pid: $CURRENT_PID"
    
    if [ -z "$CURRENT_PID" ]; then
        echo "> 현재 구동중인 애플리케이션이 없으므로 종료하지 않습니다."
    else
        echo "> kill -15 $CURRENT_PID"
        kill -15 $CURRENT_PID
        sleep 5
    fi
    
    echo "> 새 어플리케이션 배포"
    
    JAR_NAME=$(ls -tr $REPOSITORY/jar/*.jar | tail -n 1)
    
    echo "> JAR Name: $JAR_NAME"
    
    echo "> $JAR_NAME 에 실행권한 추가"
    
    chmod +x $JAR_NAME
    
    echo "> $JAR_NAME 실행"
    
    nohup java -jar \
        -Dspring.config.location=classpath:/application.properties \
        $JAR_NAME > $REPOSITORY/nohup.out 2>&1 &
    
  2. deploy.sh 권한 추가
    1
    
    chmod +x deploy.sh  
    
  3. deploy.sh 실행 테스트 Travis Travis

3. execute-deploy.sh 생성

위에서 생성한 deploy.sh를 직접 실행 할 수 없기 때문에 execute-deploy.sh를 생성하여 우회 실행한다.

  1. 프로젝트 최상위 루트에 execute-deploy.sh파일 생성
    execute-deploy.sh
    1
    2
    
    #!/bin/bash
    /home/ec2-user/app/travis/deploy.sh > /dev/null 2> /dev/null < /dev/null &
    
  2. appspec.yml sh 실행 설정 추가

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
     permissions:
     - object: /
         pattern: "**"
         owner: "ec2-user"
         group: "ec2-user"
     hooks:
     AfterInstall:
         - location: execute-deploy.sh
         timeout: 180
    

4. push후 반영확인

Travis

This post is licensed under CC BY 4.0 by the author.
Contents