5.3. Back-End 실행
5.3.1. requirements
- JDK 8 버전 이상 설치
- 18009 포트 사용 가능
- Apache Maven 3.3.1 이상 설치
5.3.2. 환경설정 수정 및 배포 스크립트 실행
5.3.2.1. crud 디렉토리 파일 구성
- application-real-db.properties : 데이터베이스 ip, schema, user, password 등 설정
- datalifecycle-crud-0.0.1-SNAPSHOT.jar : 소스파일을 패키징한 실행 파일
- deploy.sh : 전체 실행 명령어가 담긴 배포 스크립트 파일
- logs : 로그파일을 포함하는 디렉토리
- smartcity-dlm-crud : 데이터라이프사이클 백엔드 프로젝트 소스코드
5.3.2.2. DB설정 파일
- spring.datasource.url : 데이터베이스의 ip 및 schema 설정
- spring.datasource.username : 데이터베이스 유저이름
- spring.datasource.password : 데이터베이스 비밀번호
- spring.datasource.driver-class-name : jdbc 연결 드라이버
5.3.2.3. 배포 스크립트 파일
#!/bin/bash
dt=$(date '+%Y%m%d')
dd=$(date '+%d')
yymm=$(date '+%Y%m')
REPOSITORY=/home/cbnu/deploy/dlm/crud
PROJECT_NAME=smartcity-dlm-crud
SERVICE_NAME=datalifecycle-crud
cd $REPOSITORY/$PROJECT_NAME/
echo "> 프로젝트 Build 시작"
mvn clean package
echo "> crud 디렉토리로 이동"
cd $REPOSITORY
echo "> Build 파일 복사"
cp $REPOSITORY/$PROJECT_NAME/target/*.jar $REPOSITORY/
echo "> 현재 구동중인 애플리케이션 pid 확인"
CURRENT_PID=$(pgrep -f ${SERVICE_NAME}*.jar)
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/ | grep *.jar | tail –n 1)
nohup java -jar \
-Dspring.config.location=classpath:/application.properties,classpath:/application-real.properties,$REPOSITORY/application-real-db.properties $REPOSITORY/$JAR_NAME > $REPOSITORY/logs/${dt}_${SERVICE_NAME}.log 2>&1 &
- 소스파일인 smartcity-dlm-crud를 Maven을 이용하여 빌드한 뒤 실행하는 과정
- 프로세스가 실행 중이면 프로세스를 종료한 뒤 실행
- 로그파일은 logs 디렉토리에 실행한 “날짜_datalifecycle-crud.log” 이름으로 생성
- 다시 배포 스크립트 파일이 실행될 때까지 생성된 로그파일에 로그가 기록되며, 배포스크립트 파일을 다시 실행할 시 새로운 로그파일이 생성됨
- 다른 디렉토리위치 혹은 다른 서버에서 다운로드 및 빌드 시 “REPOSITORY” 변수를 해당 디렉토리 위치에 맞게 변경해야 함
- DB정보 변경 후 실행 시 application-real-db.properties 파일 변경 후 deploy.sh 파일 실행
- 실행 명령어
./deploy.sh