Skip to content

dolong2/dcd

Repository files navigation

DCD

📋 개요

DCD홈랩 프로젝트 관리 플랫폼입니다. 사용자는 CLI를 통해 Docker 컨테이너를 쉽게 생성, 배포, 모니터링하고 관리할 수 있습니다.


✨ 주요 기능

🚀 애플리케이션 관리

  • 다양한 프레임워크 지원 - Spring Boot, Nest.js 및 MySQL, MariaDB, Redis, H2 등 다양한 타입 지원
  • 원클릭 배포 - 간단한 설정으로 애플리케이션을 Docker 컨테이너로 자동 배포
  • 이미지 빌드 및 푸시 - 소스 코드로부터 자동으로 Docker 이미지 생성 및 레지스트리 업로드
  • 컨테이너 라이프사이클 관리 - 애플리케이션 시작, 중지, 재시작, 삭제 등을 한 곳에서 관리

💾 데이터 및 환경 관리

  • 저장소(Volume) 관리 - 컨테이너 데이터 영속성을 위한 볼륨 생성 및 관리
  • 환경 변수 설정 - 애플리케이션별 환경 변수를 안전하게 설정 및 관리
  • 환경 설정 스크립트 - 런타임에 환경 변수 및 설정 업데이트 가능

👥 사용자 및 접근 제어

  • 워크스페이스 분리 - 프로젝트별 독립적인 워크스페이스 생성 및 관리
  • 안전한 인증 - JWT 토큰 기반 보안 인증

📊 모니터링 및 로깅

  • 실시간 로그 스트리밍 - WebSocket을 통한 애플리케이션 로그 실시간 확인
  • 컨테이너 상태 모니터링 - 실행 중인 컨테이너의 상태 조회

🎯 사용 시나리오

시나리오 1: 팀 프로젝트 배포

  1. 팀 멤버가 새로운 Spring Boot 애플리케이션 디플로이 요청
  2. 소스 코드 설정 → 자동으로 Docker 이미지 생성
  3. 이미지를 Docker 레지스트리에 푸시
  4. 컨테이너 시작 및 WebSocket을 통해 배포 로그 실시간 확인
  5. 배포 완료 후 환경 변수 옵션으로 설정 변경

시나리오 2: 데이터 지속성이 필요한 애플리케이션

  1. 데이터베이스 또는 파일 저장이 필요한 Django 애플리케이션 생성
  2. 저장소(Volume) 생성하여 애플리케이션에 마운트
  3. 저장된 데이터는 컨테이너 재시작 후에도 유지

시나리오 3: 개발/운영 환경 분리

  1. 개발 워크스페이스와 운영 워크스페이스 생성
  2. 각 워크스페이스마다 독립적인 애플리케이션 및 환경변수 관리
  3. 환경별로 다른 설정(DB URL, API KEY 등) 안전하게 관리

📚 시작하기

요구사항

  • Docker 및 Docker Compose
  • JVM 11 이상

설치 및 실행

# 1. 인프라 시작 (MariaDB, Redis)
docker network create dcd
docker-compose up -d

# 2. 애플리케이션 빌드 및 실행
./gradlew bootRun

기본 포트: 8081


📋 지원하는 애플리케이션 타입

백엔드

  • Spring Boot - Java/Kotlin 기반 엔터프라이즈 애플리케이션
  • Nest.js - Node.js 기반 현대적인 웹 프레임워크

데이터베이스

  • MySQL - 관계형 데이터베이스
  • MariaDB - MySQL 호환 오픈소스 데이터베이스
  • H2 - 임베디드 Java 데이터베이스

캐시 및 메시지 큐

  • Redis - 인메모리 데이터 저장소

About

홈랩에서 동작하는 사이드 프로젝트 배포및 오케스트레이션 도구

Resources

Stars

Watchers

Forks

Releases

No releases published

Contributors

Languages