Sıfırdan: Google Cloud Run'da Konteyner Uygulaması Yayınlama
Google Cloud Run, sunucusuz bir platform. Konteyner yüklüyorsun, çalışıyor. Ölçekleme, altyapı yönetimi, hepsi GCP'nin sorunu. Basit bir Flask uygulamasıyla başlayalım.
İlk olarak yerel makinende Docker ve gcloud CLI kurulu olmalı. Sonra bir Python uygulaması yazıyorsun. Cloud Run, HTTP istekleri bekliyor; port 8080'de dinlemelisin.
1# app.py2from flask import Flask3import os45app = Flask(__name__)67@app.route('/')8def hello():9return 'Merhaba Cloud Run!'1011if __name__ == '__main__':12port = int(os.environ.get('PORT', 8080))13app.run(host='0.0.0.0', port=port, debug=False)Bu dosya yanına requirements.txt ekle:
1Flask==2.3.02Werkzeug==2.3.0Şimdi Dockerfile. Cloud Run, OCI uyumlu konteyner bekliyor:
1FROM python:3.11-slim23WORKDIR /app4COPY requirements.txt.5RUN pip install -r requirements.txt67COPY app.py.89CMD ["python", "app.py"]Konteynerini yerel olarak test et:
1docker build -t cloud-run-app.2docker run -p 8080:8080 cloud-run-appTarayıcıda http://localhost:8080 açınca "Merhaba Cloud Run!" görmelisin.
Artık GCP'ye yüklüyorsun. Proje ID'ni ayarla:
1gcloud config set project PROJE_IDKonteynerini Artifact Registry'ye (GCP'nin image deposu) yükle:
1gcloud builds submit --tag europe-west1-docker.pkg.dev/PROJE_ID/cloud-run-repo/cloud-run-appSonra Cloud Run'da dağıt:
[kod]
gcloud run deploy cloud-run-app \
--image europe-west1-docker.pkg.dev/PROJE_ID/cloud-run-repo/cloud-run-app \
--platform managed \
--region europe-west1 \
--allow-unauthenticated
[/cod]
Beklentili çıktı: Bir URL (mesela https://cloud-run-app-xxxxx-ew.a.run.app). O URL'ye git, "Merhaba Cloud Run!" yazısını gör.
Sık hata: PORT değişkenini okumamak. Cloud Run, 8080 portuna trafik gönderiyor; uygulanın bunu dinlemesi şart. Ayrıca requirements.txt eksikse build başarısız olur. İmajı yüklemeden önce yerel test et; zaman kazandırır.
0 yorum