전체적인 플로우

- git 에서 git hook을 통해 jenkins로 쏘기
- jenkins에서 스크립트로 빌드하고 다른 서버로 쏘는 것
- 시간이 없으니 하나의 서버에서 빌드하고 실행하는 것으로 진행
- ssm 같은 걸로 환경변수를 관리를 많이 한다.
젠킨스, 깃허브 훅 연결
- 젠킨스 주소 : http://54.180.129.133:9090/
- 이름 : amabnb
- 비번 : 동일
- 현재는 main 브랜치 푸쉬 시 빌드되도록 설정
빌드 스크립트
- application-security.yaml
- application-security.yaml 파일은 민감한 정보가 많기 때문에 github에 올리지 않고 따로 서버에 업로드하여 빌드하기 전에 넣는 식으로 진행
- -u 옵션으로 변경시에만 복사되도록 진행
- 서버에 파일 업로드 하는 법
sudo cp -u /home/ec2-user/application-security.yaml /var/lib/jenkins/workspace/amabnb/src/main/resources
scp -i amand-key-2.pem application-security.yaml ec2-user@ec2-54-180-129-133.ap-northeast-2.compute.amazonaws.com:/home/ec2-user
- 빌드 이후 실행
- 8080포트로 실행중인 애플리케이션이 있다면 종료하고 실행하도록 설정
- nohup 옵션으로 백그라운드로 실행
- jenkins에서 모든 Job이 완료되면 프로세스를 종료시키는 데 이때
BUILD_ID
를 지정해주지 않으면 애플리케이션도 같이 종료되기 때문에 다음과 같이 설정해주었습니다.
if [ $(sudo lsof -t -i:8080) != "" ]; then echo "now running application" CURRENT_PID=$(sudo lsof -t -i:8080) sudo kill -15 $CURRENT_PID else echo "no running application" fi BUILD_ID=amabnb nohup java -jar /var/lib/jenkins/workspace/amabnb/build/libs/amabnb-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod 1>/dev/null 2>&1 &