공개
spring boot를 이용한 deploy 배포(aws ci/cd)
sangwoon
2022. 2. 8. 22:36
일단 build 를 했다고 가정을 하고
spring boot 의 빌드를 해줄 것이다
일단
deploy를 할 때
beforeinstall 을 해야 한다
#!/bin/bash
if [ -d /webapp/ ]; then
sudo rm -rf /webapp/
fi
sudo mkdir -p /webapp/
왜냐 이런식으로 배포 파일을 삭제해주고 해야 한다.
그 다음에는 본격적으로 배포를 해주면 된다
#!/bin/bash
CURRENT_PID=$(pgrep -f lim-java-0.0.1-SNAPSHOT.jar)
if [ -z $CURRENT_PID ]
then
echo "> 현재 구동중인 애플리케이션이 없으므로 종료하지 않습니다." >> /webapp/deploy.log
else
echo "> kill -15 $CURRENT_PID"
kill -15 $CURRENT_PID
sleep 5
fi
sudo nohup java -jar /webapp/lim-java-0.0.1-SNAPSHOT.jar >> /webapp/deploy.log 2>/webapp/deploy_err.log &
for i in $(seq 1 6)
do
HTTP_CODE=$(curl --write-out '%{http_code}' -o /dev/null -m 10 -q -s http://localhost:8080/)
if [ "${HTTP_CODE}" == "200" ]; then
echo "good"
exit 0
fi
echo "return status code ${HTTP_CODE}"
sleep 10
done
echo "fail start application"
exit 1
먼저 멈추는 걸 해줘야한다
일단 처음에는 실행되고 있는 것이 없을 것이기 때문이다
그리고 HTTPCODE 또한 확인해주면 좋다
이러한 파일들을 실행하기 위해 이렇게 spec 파일을 작성해 줘야한다.
version: 0.0
os: linux
files:
- source: /
destination: /webapp/
permissions:
- object: /
pattern: "**"
owner: root
group: root
hooks:
BeforeInstall:
- location: start.sh
timeout: 30
runas: root
ApplicationStart:
- location: applicationStart.sh
timeout: 300
runas: root
참조를 했다