메인 | 서브 |
1. EC2에 git 설치 | maven / java / javac 추가 설치 |
2. 배포 스크립트 만들기 | gradle -> maven 컴파일 명령어 변경 |
nohup 오류 처리 | |
git pull부터 전부 하지말고 디버깅하듯이 한줄로 배포 검증하기 | |
3. 스프링부트 프로젝트로 RDS 접근 |
-
1. 배포 스크립트 작성
책에서 gradle -> maven은 빌드가 아닌 package임 주의
#!/bin/bash
REPOSITORY=/home/ec2-user/app/step1
PROJECT_NAME=RESTful1
cd $REPOSITORY/$PROJECT_NAME/
echo "> Git Pull"
git pull
echo "> 프로젝트 Build 시작"
./mvnw package
echo ">step1 디렉토리로 이동"
cd $REPOSITORY
echo "> Build 파일복사"
cp $REPOSITORY/$PROJECT_NAME/target/*.jar $REPOSITORY/ /
echo "> 현재 구동중인 애플리케이션 pid 확인"
CURRENT_PID=$(pgrep -f ${PROJECT_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)
echo "> JAR Name: $JAR_NAME"
nohup java -jar $REPOSITORY/$JAR_NAME 2>&1 &
war일지라도 생성은 Jar로 된다
pom.xml에 packagin 정보가 있어야 함
그러나 tomcat은 web 디펜던시에 이미 있다고 함.
jetty 쓸때 exclude
(스프링 공식문서)
https://docs.spring.io/spring-boot/docs/2.0.0.M4/reference/html/howto-embedded-web-servers.html
2.
*실행되자마자 hikaripool shutdown 발생
2.
local intellij에서는 실행 잘됨
3. OPEN api 사용시 @Value를 사용했었다.
해당 값이 있는 application.properties가 ec2 빌드시 끌어오지 않는가?
참고해서 프로퍼티 추가
후에도 동일오류 발생
4. 한번에 하려고 하지 말고 디버깅하듯이 target class 들어가서 직접 실행하기
실행 후 내장 톰캣 서버 실행할 수 없다는 오류
(StackOverflow)
-> 포트번호 변경
-> 톰캣 디펜던시 추가
깃헙 수동 Pull
포트 8081로 변경후 war 실행하니 실행완
한줄 커맨드로만 실행해도 application.properties (server.port) 적용되니 기본 Properties는 컴파일시 자동으로 들어감 확인.
크롬에서도 elastic DNS -> 포트 붙여서 정상 배포 확인!!!
또 packaging을 war로 해서 git에서 pull 및 ./mvnw package(컴파일)은 war로 계속 생성되었었는데, jar로만 실행해서 오류가 났다
*책에서 배포는 jar로 하는 것
-
5. 다시 자동 배포 스크립트 설정
nohup로 해보기
기존 deploy.sh 놔두고 deploy3.sh로 생성 실행
./mvnw에 권한 줘도 동일 문제
문제1 : 설정된 8081 포트 아닌 8080으로 실행
문제2 : war를 jar로 바꾸어서 다시 실행하기
'포트폴리오 > AWS CICD' 카테고리의 다른 글
무중단 배포(nginx) (1) | 2024.05.02 |
---|---|
Travis CI + S3 + Codeplay (0) | 2024.05.02 |
터미널 명령어 (0) | 2024.05.01 |
EC2 RDS 연결 (0) | 2024.04.30 |
EC2 개설 (0) | 2024.04.30 |