Docker 이미지를 Cloud Run에 배포하는 템플릿입니다.
Dockerfile과 .env만 수정하면 바로 배포할 수 있습니다.
- Google Cloud SDK (gcloud CLI)
- Docker
- GCP 프로젝트
cp .env.example .env.env를 본인 환경에 맞게 수정:
PROJECT_ID=your-gcp-project-id # GCP 프로젝트 ID
REGION=us-central1 # us-central1 권장 (무료 티어 적용)
REPO_NAME=my-repo # Artifact Registry 저장소 이름
SERVICE_NAME=my-service # Cloud Run 서비스 이름
IMAGE_TAG=v1 # Docker 이미지 태그GCP 프로젝트 ID는 GCP Console에서 확인할 수 있습니다.
GCP 결제 설정에서 프로젝트에 결제 계정을 연결합니다. 무료 티어 내에서만 사용하더라도 결제 계정 연결은 필수입니다.
make auth브라우저가 열리면 Google 계정으로 로그인합니다.
make setupCloud Run API, Artifact Registry API를 활성화하고 Docker 저장소를 생성합니다.
본인 앱에 맞게 Dockerfile을 수정합니다. Cloud Run은 포트 8080을 사용해야 합니다.
예시 - Python Flask:
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 8080
CMD ["python", "app.py"]예시 - Node.js:
FROM node:20-alpine
WORKDIR /app
COPY package*.json .
RUN npm install
COPY . .
EXPOSE 8080
CMD ["node", "server.js"]make localhttp://localhost:8080에서 정상 동작하는지 확인합니다.
make allDocker 이미지 빌드 → Artifact Registry 푸시 → Cloud Run 배포를 한 번에 수행합니다.
make url출력된 URL로 접속하면 배포된 서비스를 확인할 수 있습니다.
코드 수정 후 재배포는 make all만 실행하면 됩니다. (Step 3~4는 최초 1회만)
make all더 이상 사용하지 않으면 리소스를 삭제하여 과금을 방지합니다.
make teardown| 명령어 | 설명 |
|---|---|
make auth |
gcloud 로그인 + 프로젝트 설정 |
make setup |
API 활성화 + Artifact Registry 저장소 생성 |
make build |
Docker 이미지 빌드 |
make push |
Artifact Registry에 이미지 푸시 |
make deploy |
Cloud Run에 배포 |
make all |
build + push + deploy |
make local |
로컬에서 Docker 컨테이너 실행 (localhost:8080) |
make logs |
Cloud Run 로그 확인 |
make url |
배포된 서비스 URL 출력 |
make teardown |
Cloud Run 서비스 + 이미지 + 저장소 삭제 |
make clean |
로컬 Docker 이미지 삭제 |
| 리전 | 무료 티어 | 가격 등급 |
|---|---|---|
us-central1 (아이오와) |
O | Tier 1 (저렴) |
us-east1 (사우스캐롤라이나) |
O | Tier 1 |
us-west1 (오리건) |
O | Tier 1 |
asia-northeast3 (서울) |
X | Tier 2 (20% 비쌈) |
비용을 아끼려면
us-central1을 권장합니다.
- Cloud Run은 포트 8080을 기본으로 사용합니다.
- Apple Silicon(M1/M2/M3) Mac에서 빌드 시
--platform linux/amd64옵션이 필요합니다. (Makefile에 이미 포함) .env파일은.gitignore에 포함되어 있어 git에 올라가지 않습니다.