Docker Image'ı AWS ECR'a Push Etmek: CI/CD İş Akışı

Docker image'ını AWS ECR'a (Elastic Container Registry) göndermek, CI/CD sürecinin temel bir parçasıdır. Yerel olarak oluşturduğun container'ı buluta taşıyarak, ECS ya da Kubernetes gibi orkestrasyon araçlarıyla çalıştırabilirsin.

AWS CLI kurulu olduğunu varsayarak başlayalım. Önce ECR'da bir repository oluştur. AWS Console'dan ya da CLI ile yapabilirsin:

1aws ecr create-repository --repository-name my-app --region us-east-1

Komut başarılıysa repository URI'sini göreceksin. Şöyle bir çıktı gelir:

1"repositoryUri": "123456789.dkr.ecr.us-east-1.amazonaws.com/my-app"

Şimdi ECR'a login ol. AWS CLI otomatik olarak geçici token oluşturur:

1aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 123456789.dkr.ecr.us-east-1.amazonaws.com

Başarılı login'de "Login Succeeded" mesajı görürsün.

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası

Sonra local image'ını ECR repository URI'sine göre tag'le:

1docker tag my-app:latest 123456789.dkr.ecr.us-east-1.amazonaws.com/my-app:latest

Ve push et:

1docker push 123456789.dkr.ecr.us-east-1.amazonaws.com/my-app:latest

Push sırasında layer'ların yüklenişini göreceksin. Tamamlandığında ECR Console'da image'ı görebilirsin.

CI/CD pipeline'ında (GitHub Actions, GitLab CI, Jenkins gibi) bu adımları otomatikleştir. AWS credentials'ı environment variable olarak ayarla, sonra aynı komutları çalıştır. Örneğin GitHub Actions'da:

1- name: Push to ECR
2run: |
3aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin $ECR_REGISTRY
4docker tag my-app:latest $ECR_REGISTRY/my-app:${{ github.sha }}
5docker push $ECR_REGISTRY/my-app:${{ github.sha }}
6env:
7ECR_REGISTRY: 123456789.dkr.ecr.us-east-1.amazonaws.com

Sık yapılan hata: AWS credentials'ı code'a hardcode etmek. Her zaman IAM role ya da secrets manager kullan. Ayrıca, image tag'ine commit hash ya da build number eklemek iyi bir pratiktir; böylece her deploy'da hangi versiyon çalıştığını takip edebilirsin.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz