랩: 컨테이너화된 SDLC

랩: 컨테이너화된 SDLC

Docker Compose, Testcontainers, Gitea Actions CI/CD, kubectl을 사용해 Node.js 앱을 소스에서 실제 Kubernetes 배포까지 이끄는 실습 랩이에요. SDLC의 모든 단계에서 컨테이너를 사용해요.

출처: 문서

본문

실제 Node.js API를 만들고, 소프트웨어 개발 수명주기의 모든 단계에 컨테이너를 적용해볼게요. 로컬 개발용 Compose 파일, Testcontainers를 사용한 통합 테스트, CI/CD 파이프라인, Kubernetes 매니페스트를 작성하게 되는데, 전체 과정에서 동일한 컨테이너 이미지를 사용해요.

랩 시작하기

랩스페이스를 시작해볼게요:

$ docker compose -p labspace -f oci://dockersamples/labspace-containerized-sdlc up -d

브라우저에서 http://dockerlabs.xyz 를 열어주세요.

실습을 마치면 랩스페이스를 정리해요:

$ docker compose -p labspace down

배우게 될 내용

이 Labspace를 마치면 다음과 같은 것들을 완료하게 돼요:

  • Docker Compose와 Compose Watch로 컨테이너화된 로컬 개발 환경 구축하기
  • Testcontainers로 실제 데이터베이스를 띄우는 통합 테스트 작성하기
  • 컨테이너 이미지를 자동으로 테스트·빌드·푸시하는 CI/CD 파이프라인 구축하기
  • Kubernetes 매니페스트를 작성하고 k3s 클러스터에 실제 앱 배포하기
  • main 으로 푸시할 때마다 자동 배포를 일으키도록 파이프라인 구성하기

모듈

# 모듈 설명
1 Introduction: Meet the App TaskFlow API 둘러보기 및 SDLC 여정 이해
2 Local Dev with Docker Compose 로컬 데이터베이스와 시각화 도구를 제공하는 compose.yaml 작성
3 Containerizing Your Dev Environment Compose Watch로 핫 리로딩하며 앱을 Compose에 추가
4 Integration Testing with Testcontainers 실제 PostgreSQL 컨테이너를 시작하는 자족형 테스트 작성
5 Continuous Integration with Gitea Actions 이미지를 테스트·빌드·푸시하는 파이프라인 구축
6 Deploying to Kubernetes 매니페스트를 작성하고 자동 롤아웃으로 실제 k3s 클러스터에 배포
7 The Containerized SDLC: A Recap 이식성, 일관성, 재현성의 이점 검토

더 알아보기 (Learn more)

  • Docker Compose
  • Testcontainers
  • Kubernetes / k3s