tech.junha.kr

노트/Docker

배포 환경 종류

작성 수정

  • Kubernetes (GKE, EKS, OpenShift) Kubernetes 기반의 클러스터에 배포

  • Managed container runtime 관리형 컨테이너 실행 환경 (예: AWS Fargate, Google Cloud Run)

  • Self-managed container runtime 사용자가 직접 관리하는 컨테이너 환경 (예: Podman, Docker Swarm)

  • Virtual machine (예: EC2) 가상 머신을 사용한 배포

  • Mobile app store 모바일 앱 스토어에 배포 (예: Google Play, App Store)

  • Registry (package or container) 패키지나 컨테이너 레지스트리 (Docker Hub, GitHub Packages)

    • AWS ECR, Google GCR도 많이 사용됨
    • 컨테이너 이미지를 저장하고 공유하는 저장소
  • Infrastructure provider 인프라 프로비저닝 도구 (예: Terraform, AWS CloudFormation)

  • Serverless backend 서버리스 백엔드 (예: AWS Lambda, Google Cloud Run)

  • Edge Computing 엣지 컴퓨팅 플랫폼 (예: Cloudflare Workers)

  • Web Deployment Platform 웹 배포 플랫폼 (예: Netlify, Vercel)

  • GitLab Pages GitLab의 정적 페이지 호스팅

Cloud Run에 빌드 제출하기

gcloud builds submit . --config=cloudbuild.yaml \
  --substitutions=COMMIT_SHA=$(git rev-parse --short HEAD) --timeout=1h
  • gcloud builds submit .: 현재 디렉토리의 소스 코드를 Google Cloud Build에 제출하여 빌드.
  • --config=cloudbuild.yaml: 빌드 설정 파일로 cloudbuild.yaml을 참고해 빌드를 진행한다.
  • --substitutions=COMMIT_SHA=$(git rev-parse --short HEAD): 현재 커밋의 해시 값을 COMMIT_SHA 변수로 대체하여 빌드 과정에 사용.
  • --timeout=1h: 빌드 작업의 최대 실행 시간을 1시간으로 제한.