iToverDose/Yazılım· 23 NISAN 2026 · 08:02

Dockerfile Paylaşımı için GitLab CI/CD'nin Güçlü Yönleri

Birden fazla projeye ait Dockerfile'ları merkezi bir depoda yönetmek ve CI/CD pipeline'larını optimize etmek için GitLab CI/CD'nin sunduğu güçlü olanaklar

DEV Community1 dk okuma0 Yorumlar

Birden fazla grup projesi (frontend, backend vb.) ile çalışıyorsunuz ve tek bir Dockerfile'ı merkezi bir depoda yönetmek istiyorsunuz. Bu, tüm grup uygulamalarının aynı Dockerfile'ı kullanmasını ve buna bağlı olarak kod tekrarının önüne geçilmesini sağlayacaktır. Ancak, GitLab CI/CD'de include kullanarak bir başka depodan Dockerfile'ı almak istediğinizde,.pipeline sırasında docker build komutu çalıştırıldığında dosya bulunamadığı için hata alırsınız. Bunun nedeni, include sadece CI YAML dosyalarını içe aktarması, ancak depo dosyalarına erişim sağlamamasıdır.

CI_JOB_TOKEN ve GitLab Deposu Dosyaları API'sinin Kullanımı

GitLab CI/CD, bir işin çalıştırılması sırasında bir CI_JOB_TOKEN oluşturur ve bu token iş boyunca geçerli olur. İş bittikten sonra token erişimi iptal edilir. Bu, pipeline'nin başka bir proje中的 dosyaları güvenli bir şekilde almasını sağlar.

Uygulama Adımları

  1. Diğer Projelere Erişimi İzne Bağlama: cicd-template deposunda Settings > CI/CD > Job token permissions > Fine-grained permissions > Add kelvyn-labs/nextjs-cicd-template
  2. Dockerfile'ı Almak: .build-job işinde CICD_TEMPLATE_PROJECT_ID, CICD_TEMPLATE_REF ve CICD_TEMPLATE_DOCKERFILE_PATH değişkenlerini ayarlayın. Ardından, curl komutunu kullanarak Dockerfile'ı alın.
  3. Docker Görüntüsünü Oluşturmak: docker buildx build komutunu kullanarak Dockerfile'ı kullanarak bir görüntü oluşturun ve bunu kaydedin.

Neden Bu Yöntem Daha İyidir

  • Merkezi Kontrol: Dockerfile tek bir depoda yönetilir ve platform ekibi derleme mantığını kontrol eder.
  • Tekrarı Önleme: Dockerfile'ın kopyalanması önlenir.
  • Güvenli: Erişim, allowlist ve kullanıcı izinleri aracılığıyla kontrol edilir.
  • Esneklik: Herhangi bir hizmet için (FE/BE vb.) kullanılabilir.

İleri Düzey İpuçları

  1. Sürüm Sabitleme: master yerine belirli bir sürüm kullanın.
  2. Tekrar Kullanılabilirlik: Değişkenleri ayarlayarak başka projelerde de kullanın.
  3. Ne Zaman Kullanılmamalıdır: Dockerfile birden fazla dosyaya bağımlıysa, o zaman git clone yerine curl kullanmayın.

Gelecek için, CI/CD pipeline'larınızı daha etkili ve güvenli bir şekilde yönetmek için GitLab CI/CD'nin sunduğu olanakları keşfedin.

Yapay zeka özeti

Learn how to securely fetch and reuse Dockerfiles from a central GitLab repository using CI job tokens for scalable, duplication-free CI/CD pipelines.

Yorumlar

00
YORUM BIRAK
ID #YDBW4R

0 / 1200 KARAKTER

İnsan doğrulaması

5 + 4 = ?

Editör onayı sonrası yayına girer

Moderasyon · Spam koruması aktif

Henüz onaylı yorum yok. İlk yorumu sen bırak.