NestJS API for POPO @ PoApper
POPO, POstechian's POrtal
👉 POPO
POPO는 PoApper에서 개발하고, POSTECH 총학생회에서 운영하는 포털 사이트입니다. POPO를 통해 교내의 장소/장비를 예약하고, 자치단체 및 동아리 정보를 열람할 수 있습니다.
POPO 어플리케이션은 Docker Container로 실행되고 있으며, Docker Swarm을 통해 오케스트레이션 되고 있다. Portainer라는 웹 도구를 사용해 컨테이너 환경을 제어하고 모니터링 하고 있다. Dev-Prod의 two-stage 배포 정책을 가지고 있으며, 각 stage에 배포하기 위한 조건은 아래와 같다.
- Dev Stage
- POPO 도커 이미지의
latest
버전을 업데이트 한다. - 이때, Web 어플리케이션의 경우는 도커 이미지 빌드 때
NEXT_PUBLIC_ENV=dev
로 설정해줘야 한다. latest
버전이 업데이트 되면, Github Action을 통해 Auto-deploy 해준다.
- POPO 도커 이미지의
- Prod Stage
- POPO 도커 이미지의 특정 태그를 업데이트 한다. (ex.
v1.2.3
) - 이때, Web 어플리케이션의 경우는 도커 이미지 빌드 때
NEXT_PUBLIC_ENV=prod
로 설정해줘야 한다. - Portainer 웹에서 "직접" Prod stage의 버전을 바꿔준다.
- POPO 도커 이미지의 특정 태그를 업데이트 한다. (ex.
- Seokyun Ha (@bluehorn07)
- Jeongwon Choi (@jjeongone)
- Hyojeong Yun (@hyojeongyunn)
- Gwanho Kim (@khkim6040)