랩: 컨테이너화된 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