Infra/CI&CD

Infra/CI&CD

SpringBoot, Vue3 프로젝트 CI/CD (2)

이번 글에서는 이전 글에 이어서 젠킨스 설정(소나 큐브와 연동), Nginx Proxy Manager 설정을 진행한다. 진행하기 전 소나 큐브와 포테이너에 접속해 계정을 만들고, 어떤 기능이 있는지 한번 살펴보자. 포테이너의 웹 UI로 편하게 컨테이너를 관리하고 모니터링 할 수 있으며 소나 큐브의 웹 UI로 정적 분석 결과를 볼 수 있다. 젠킨스 시작 젠킨스란 빌드, 배포 과정을 자동화할 수 있는 소프트웨어이다. 설치형이기에 설치와 설정이 필요하다는 단점이 있지만 비용(돈)이 들지 않는다. 웹 브라우저 URL 검색 창에 호스트 서버 IP:9090을 검색했을 때 아래의 화면이 나오면 정상 설치 된 것이다. 젠킨스는 편리하게 사용할 수 있도록 웹 인터페이스를 제공한다. 처음 접속 시 계정을 설정해야한다. 젠..

Infra/CI&CD

SpringBoot, Vue3 프로젝트 CI/CD (1)

아키텍처 구조 본 글에서는 SpringBoot와 Vue3 사용한 '날숨' 프로젝트의 자동 빌드, 배포하는 과정을 설명한다. 아래는 필자가 진행한 '날숨' 프로젝트의 아키텍처 구조이다. Docker를 사용하며, Docker를 개념적으로 두 개의 영역으로 구분했다. 왼쪽은 배포한 웹 애플리케이션이 동작하는 영역이며, 클라이언트 요청에 대해 응답한다. 오른쪽은 그 외 컨테이너들이 있는 영역이다. 각 컨테이너의 역할은 아래와 같다. Nginx: Nginx 웹 서버가 동작하는 컨테이너. 리버스 프록시 역할을 수행한다. 빌드된 Vue3의 파일들을 갖고 있어 정적 파일 요청(HTML, JS, CSS)을 처리하며 백엔드 요청을 Spring Boot 컨테이너로 프록시한다. Spring Boot : jdk 21이 설치된 ..

Infra/CI&CD

Django Channels 배포

Deubot 프로젝트 Django와 Django Channels로 만든 앱을 배포하기 위해 검색을 한 결과 Nginx, Daphne, Gunicorn 세개의 서버로 구축하게 되었다. Deubot 프로젝트 구조를 간략하게 도식화하면 아래와 같다. 우선 Nginx 서버를 리버스 프록시 서버로 설정한 뒤 HTTP 요청은 Gunicorn 서버가 WS 요청은 Daphne 서버가 처리하도록 설정한다. Nginx 서버는 정적 컨텐츠를 제공하고 Gunicorn, Daphne 서버는 동적 컨텐츠를 제공한다. Gunicorn 설정 1. Gunicorn 설치 pip install gunicorn 2. gunicorn 서비스 파일 생성 (서비스로 만듬) sudo vi /etc/systemd/system/django-gunic..

gunjoon98
'Infra/CI&CD' 카테고리의 글 목록