2024. 5. 26. 01:49ㆍ프로젝트/[EATceed] 몸무게 증량 어플
이번 학기 캡스톤 프로젝트에서 CI/CD 파이프라인 구축을 해보아서, 이번에도 비슷하게 하면 되겠지 라는 마음으로 임하였다가 꼬박 몇 시간 동안 파이프라인 작업만 하였습니다..
개발집에서는 GitHub Actions를 사용해 파이프라인을 구축하였습니다.
GitHub Actions를 사용한 이유는 아래와 같습니다.
- GitHub과 하나로 통합된 환경인 만큼 친숙하다.
- 친숙한 문법인 YAML 파일을 사용하여 파이프라인 구축이 가능하다.
다음으로, 파이프라인의 흐름을 살펴보겠습니다.
전체적인 흐름
docker image를 build 후 push 한 후 EC2 서버내에서 해당 이미지들을 Pull해와 docker-compose로 컨테이너들을 작동시키는 것이다.
그리고, docker-compose할 때 필요한 설정 파일들은 appleboy/scp-action을 이용하여 서버로 복사하였다.
마지막으로, 당연한 것이지만 외부에 노출되면 안되는 값들은 Actions Secret를 사용하였습니다.
마주한 오류들
appleboy/scp-action의 source 위치
현재 프로젝트 구조는 아래와 같이 되어있다.
각 레포로 분리되는 것이 좋다고 판단되지만, 개발 환경 배포의 편의성을 위해 위와 같은 폴더 구조를 가져가게 되었다. (BE에서 AI 인프라 또한 관리하고 있다.)
프로젝트 구조로 인해 source의 위치에 prefix처럼 ./BE/exceed를 붙여야했다.
Github Secrets를 못 찾아오고 있네
fork한 Repository에서 날린 Pull Request를 통해 이루어지는 Github Actions의 Work flow에는 Secrets가 전달되지 않는다.
따라서, 백엔드팀의 git flow를 upstream 레포 내에서 PR 하는 방식으로 변경하였습니다.
PR_Review가 승인되고, workflows를 실행하고 싶은데..
현재 개발집의 백엔드는 PR Review가 Approve되어야 Merge가 된다.
따라서, PR Review가 Approve된 이후에 CI/CD workflows가 실행되어야 한다.
그래서 공식문서를 참고해 트리거를 수정하였다.
'프로젝트 > [EATceed] 몸무게 증량 어플' 카테고리의 다른 글
Request Time Out이 발생하는 이유 - ALB Connection idle timeout (1) | 2024.06.03 |
---|---|
전략 패턴을 이용해서 요구사항 대응하기 (0) | 2024.06.01 |
EC2 용량 부족 이슈 해결 (0) | 2024.05.13 |
@ColumnDefault에 대한 오해 (0) | 2024.05.07 |
Grafana와 Prometheus를 이용한 모니터링 (0) | 2024.05.04 |