Spring Boot 프로젝트의 배포 자동화를 설정하기 위해 아래 블로그를 순차적으로 따라가다 문제가 발생하였다! !
Github Actions CD: AWS EC2 에 Spring Boot 배포하기
Overview 애플리케이션을 개발하면 외부에서도 접근 가능하도록 클라우드 환경에 배포합니다. 이전에 포스팅 했던 AWS 1편에서는 마지막에 scp 명령어로 로컬에 존재하는 빌드 파일을 EC2 인스턴스
bcp0109.tistory.com
모든 설정을 마치고 코드를 변경하여 github repository에 올렸을 때, 처음 발생한 Error는 다음과 같았다.
Error: Error: Gradle script '/home/runner/work/modugarden-server/modugarden-server/gradlew' is not executable.
이는 Gihub Actions Workflow에서 작성한 deploy.yml 파일에서 JDK 설정 후 Build 설정을 추가로 해줘야 했기 때문에 생긴 에러였다.
# Build 설정
- name: Grant execute permission for gradlew
run: chmod +x gradlew
이후 workflows는 정상적으로 실행되는 것을 확인할 수 있었다.
하지만 , , , 다른 문제가 발생하였는데, 새로운 jar 파일이 실행되다가 바로 꺼지는 것이었다.
이는 Github Actions Workflow에서 작성한 deploy.yml 파일에서 github repository에 올리지 않은 git ignore된 파일을 추가해 주어야 하기 때문에 생긴 문제였다.
deploy.yml 파일에 ignore된 파일 추가
# Ignore yml 파일 추가
- name: Copy dev secret
env:
DEV_SECRET: ${{ secrets.DEV_SECRET }}
DEV_SECRET_DIR: src/main/resources
DEV_SECRET_DIR_FILE_NAME: application-dev.yml
run: echo $DEV_SECRET | base64 --decode >> $DEV_SECRET_DIR/$DEV_SECRET_DIR_FILE_NAME
- name: Copy security secret
env:
SECURITY_SECRET: ${{ secrets.SECURITY_SECRET }}
SECURITY_SECRET_DIR: src/main/resources
SECURITY_SECRET_DIR_FILE_NAME: application-security.yml
run: echo $SECURITY_SECRET | base64 --decode >> $SECURITY_SECRET_DIR/$SECURITY_SECRET_DIR_FILE_NAME
**여기서 github repository → Setting → Security → Actions 에서 git ignore된 파일들을 새로 작성하여 넣어주어야 함.
단, base64로 기존 코드를 인코딩해서 올려주어야 함!!!!
이후 정상적으로 서버에 적용되는 것을 확인 가능했다.
프로젝트 자동 배포 끝.
참고 블로그 :
Springboot 프로젝트 Github Action을 이용해서 배포 자동화하기
###🔥 주의 🔥 해당 글은 에러와 실패 과정을 모두 포함한 글이므로 만일 따라하실 때는 다 읽으시고 正道만 걸으시라는 뜻..... 참고 블로그 (처음에 따라할 때 ) https://stalker5217.netlify.app/devops/git
velog.io
'Trouble Shooting' 카테고리의 다른 글
게시글 테이블과 게시글 이미지 테이블의 연관 관계 설정 (0) | 2023.11.11 |
---|---|
RDB vs NoSQL (0) | 2023.10.20 |
소셜 로그인, JWT 관련 의문점 정리 (0) | 2023.10.18 |
CI/CD 트러블 슈팅 (0) | 2023.07.25 |
벌크연산과 @Modifying / Not supported for DML operations [DELETE] (0) | 2023.02.22 |