피드로 돌아가기
Dev.toDevOps
원문 읽기
순수 VM 환경에서 Python 프로젝트의 CI/CD 파이프라인을 단계별로 구축하는 실습 가이드를 제공함
From a Fresh VM to a Working CI/CD Pipeline
AI 요약
Context
순수 Debian VM에서 VS Code, GitLab, SonarQube, Docker가 사전 설치된 환경을 활용함. 테스트/개발 환경이 갖춰지지 않은 상태에서 실제 CI/CD 파이프라인을 구축해야 하는 상황을 다룸.
Technical Solution
- 환경 검증: uname -a, python3 --version, git --version, docker --version 명령어로 VM 내 사전 설치 도구들의 버전을 확인함
- 프로젝트 분석: unzip으로 프로젝트 압축 해제 후 app.py, requirements.txt, tests/test_app.py 파일을 직접 확인함
- 로컬 실행 검증: pip install -r requirements.txt로 의존성 설치 후 python3 app.py와 curl http://localhost:5000으로 애플리케이션 동작을 확인함
- 테스트 선행 실행: pytest로 CI 환경 이전에 테스트 실패를 확인하고 수정함
- Docker 컨테이너화: python:3.11-slim 베이스 이미지로 Dockerfile 작성 후 docker build와 docker run으로 검증함
- GitLab CI/CD: .gitlab-ci.yml에서 pytest, docker build, docker push, SonarQube analysis_job을 파이프라인 스테이지로 구성함
Impact
GitLab Runner가 shell executor로 구성되어 HTTP 인증 방식으로 GitLab에 푸시함. SonarQube 정적 분석이 파이프라인에 통합되어 코드 품질을 자동 검증함.
Key Takeaway
CI/CD 파이프라인 구축의 가장 어려운 부분은 YAML 파일 작성 자체가 아니라 프로젝트 구조 이해, 로컬 동작 검증, 버전 관리 연결, 품질 분석 설정, 컨테이너화, 자동화, 최종 검증이라는 전체 체인을 이해하는 것임.
실천 포인트
사전 설치된 도구가 있는 VM 환경에서 Python 프로젝트의 CI/CD를 구축할 때, GitLab이나 Docker 설정에 앞서 반드시 로컬에서 애플리케이션 실행과 pytest 테스트 성공을 먼저 완료해야 파이프라인 디버깅 시간을 단축할 수 있음.