본문 바로가기
카테고리 없음

도커: CI/CD 파이프라인에 통합하는 3단계 방법

by 테크쓰기 2025. 6. 20.

도커를 CI/CD 파이프라인에 통합하면 배포 표준화, 빌드 일관성 향상, 소프트웨어 제공 속도 개선이라는 이점을 얻을 수 있습니다. 이 글에서는 실제 엔지니어링 팀들이 사용하는 검증된 방법을 기반으로 도커를 지속적 통합 및 배포(CI/CD) 워크플로우에 통합하는 구조적인 3단계 방법을 소개합니다.

젠킨스, GitHub Actions, GitLab CI, CircleCI 등 어떤 도구를 사용하든 도커는 개발부터 운영까지 일관된 컨테이너 환경을 제공하는 핵심 역할을 합니다.

1단계: 애플리케이션 도커화(Dockerize)

Dockerfile 작성

의존성, 런타임 명령어, 환경 설정 등을 모두 포함하는 Dockerfile을 생성하세요. 예시:

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
CMD ["npm", "start"]

이러한 Dockerfile은 모든 빌드 환경에서 동일한 결과를 보장합니다.

로컬 테스트

다음 명령어로 컨테이너를 로컬에서 빌드하고 실행하여 검증하세요:

docker build -t my-app .
docker run -p 3000:3000 my-app

컨테이너가 정상적으로 작동하면 다음 단계로 넘어갈 준비가 된 것입니다.

2단계: CI에서 빌드 및 테스트 자동화

CI 도구 선택 및 설정

대부분의 최신 CI 플랫폼은 도커를 기본적으로 지원합니다. GitHub Actions에서의 설정 예시는 다음과 같습니다:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Build Docker image
        run: docker build -t my-app:latest .
      - name: Run tests
        run: docker run my-app:latest npm test

이 구성은 도커 이미지를 빌드하고 그 안에서 테스트를 수행하여 일관되고 재현 가능한 과정을 보장합니다.

빌드 캐시 활용

도커 레이어 캐시와 CI 도구별 캐시 전략을 활용하면 빌드 속도를 크게 향상시킬 수 있습니다. 예를 들어, node_modules 레이어를 캐싱하면 반복 빌드 시간이 단축됩니다.

3단계: 이미지 푸시 및 CD 배포

도커 레지스트리에 이미지 푸시

CI 파이프라인에서 도커 허브, AWS ECR, GitHub 컨테이너 레지스트리 등으로 이미지를 푸시하도록 구성하세요:

docker tag my-app:latest ghcr.io/your-org/my-app:latest
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u USERNAME --password-stdin
docker push ghcr.io/your-org/my-app:latest

자동 배포 실행

푸시가 완료되면 배포 스크립트를 자동으로 실행합니다. 예를 들어:

  • 쿠버네티스 환경에서는 kubectl apply 명령어 사용
  • 전통적인 서버는 SSH 명령어로 배포
  • ArgoCD, Spinnaker 등 CD 도구를 이용한 GitOps 방식 지원

이 과정까지 완료되면 코드 변경 사항이 자동으로 운영 환경까지 전달되어 CI/CD 루프가 완성됩니다.

결론

도커를 CI/CD 파이프라인에 통합하면 일관성, 확장성, 배포 속도 측면에서 큰 장점이 있습니다. 도커화 → 빌드 및 테스트 자동화 → 배포까지 자동화하는 이 3단계 방법은 현대 DevOps 환경에 적합한 강력한 프레임워크입니다.

 

AWS Lambda 성능 최적화 실전 전략 5가지