Jenkins ile Docker İmajları Oluşturma
Kod değişiklikleri yapıldığında Docker imajlarını otomatik olarak oluşturup kayıt deposuna gönderecek Jenkins işlerini yapılandırın.
Jenkins ile Docker İmajları Oluşturma, CoddyKit'te ücretsiz bir DevOps Bootcamp dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, DevOps Bootcamp öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. DevOps Bootcamp kursu toplamda 4 dersten oluşur.
Docker Derlemelerini Otomatikleştirme
Docker görüntülerini manuel olarak derlemek yavaş, tutarsız ve hatalara açık olabilir. Bu durum özellikle ekip ortamlarında veya sık kod değişiklikleri yaptığınızda geçerlidir.
Otomasyon, güvenilir ve verimli yazılım tesliminin anahtarıdır. Bu derste görüntü oluşturmayı ve göndermeyi otomatikleştirmek için Jenkins'i Docker ile nasıl entegre edeceğimizi öğreneceğiz.

Jenkins ve Docker Ön Koşulları
Jenkins'in Docker görüntüleri derleyebilmesi için bir Docker arka plan hizmetiyle etkileşim kurması gerekir. Bu, Docker istemcisinin Jenkins işinizin çalışacağı makineye veya aracısına kurulması gerektiği anlamına gelir.
Ayrıca şunlara ihtiyacınız olacaktır:
- Çalışan bir Jenkins sunucusu (1. dersten)
- Bir Docker kayıt deposuna erişim (örneğin Docker Hub)
- Örnek bir uygulama ve Dockerfile'ı
Jenkins Ana Makinesine Docker Kurulumu
Jenkins'in Docker komutlarını çalıştırabilmesini sağlamak için Docker'ın Jenkins sunucusuna veya aracısına kurulup yapılandırıldığından emin olun. Jenkins kullanıcısının Docker arka plan hizmetiyle etkileşim kurmak için çoğu zaman izinlere ihtiyacı vardır.
Linux sisteminde kurulumu şu şekilde yapabilirsiniz:
sudo apt-get update
sudo apt-get install -y docker.io
sudo usermod -aG docker jenkins
sudo systemctl restart docker
sudo systemctl restart jenkinsKayıt Defteri Kimlik Bilgilerini Güvence Altına Alma
Görüntüleri bir Docker kayıt defterine göndermek için Jenkins'in kimlik bilgilerine ihtiyacı vardır. Bunları doğrudan Jenkinsfile'ınızda veya iş yapılandırmanızda saklamamanız, güvenli bir yerde tutmanız çok önemlidir.
Jenkins'in yerleşik Kimlik Bilgileri özelliği bunun için idealdir:
- Jenkins'i Yönet > Kimlik Bilgilerini Yönet bölümüne gidin.
- Docker kayıt defteriniz için yeni bir Kullanıcı adı ve parola kimlik bilgisi ekleyin.
- Daha sonra başvurabilmek için bu kimlik bilgisine açıklayıcı bir ID verin (örneğin,
dockerhub-credentials).
Örnek Flask Uygulaması
Çok basit bir Python Flask uygulaması kullanalım. Bunu app.py adlı bir dosyaya koyacağız. Uygulama temel bir 'Hello' mesajı sunacak.
Python bağımlılıklarımızı belirtmek için ayrıca bir requirements.txt dosyasına ihtiyacımız olacak.
# app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello from CoddyKit!'
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=5000)
# requirements.txt
Flask==2.0.2Dockerfile Oluşturma
Sonraki adımda Docker görüntümüzü bir Dockerfile kullanarak tanımlayacağız. Bu dosya, Docker'a uygulama görüntümüzü nasıl oluşturacağını bildirecek.
Bu Dockerfile dosyasını app.py ve requirements.txt ile aynı dizine yerleştirin.
# Dockerfile
FROM python:3.9-slim-buster
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY app.py .
EXPOSE 5000
CMD ["python", "app.py"]Jenkins İşi: Derleme Adımı
Şimdi bir Jenkins Freestyle işi yapılandıralım. Derleme Adımları bölümünde bir Shell çalıştır adımı ekleyin. Bu komut Docker görüntünüzü oluşturacak.
yourusername ifadesini Docker Hub kullanıcı adınızla veya kayıt defteri yolunuzla değiştirmeyi unutmayın.
# In Jenkins 'Execute shell' build step:
docker build -t yourusername/coddykit-app:latest .Jenkins İşi: Oturum Açma ve Gönderme Adımı
Görüntüyü oluşturduktan sonra onu Docker kayıt defterimize göndermemiz gerekir. Bunun için genellikle oturum açmak gerekir. Daha önce kaydettiğimiz kimlik bilgilerini kullanacağız.
Başka bir Shell çalıştır adımı ekleyin. Jenkins, doğru yapılandırılmışsa kimlik bilgilerini ortam değişkenleri olarak (örneğin, DOCKER_USER ve DOCKER_PASS) aktaracaktır.
# In Jenkins 'Execute shell' build step:
echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin
docker push yourusername/coddykit-app:latestDerleme Tetikleyicilerini Otomatikleştirme
CI/CD'nin gücü otomasyondan gelir. Jenkins, çeşitli olaylara göre bu derleme ve gönderme işlerini otomatik olarak tetikleyebilir:
- SCM Yoklaması: Jenkins, yeni işlemeler için Git deponuzu düzenli aralıklarla kontrol eder.
- Web kancaları: Git sağlayıcınız (GitHub, GitLab, Bitbucket), kod gönderildiğinde Jenkins'e bildirim yollar.
- Üst Projeler: Başka bir Jenkins işinin başarıyla tamamlanmasının ardından tetiklenir.
Jenkins İşini Sınama
Derleme adımlarını ve tetikleyicileri yapılandırdıktan sonra Jenkins işinizi kaydedin. Sınamak için bir derlemeyi elle tetikleyebilirsiniz. Docker görüntüsünün başarıyla oluşturulup gönderildiğini görmek için konsol çıktısını izleyin.
Başarılı bir çalıştırma, CI işlem hattınızın artık kodunuz her değiştiğinde yeni Docker görüntülerini otomatik olarak oluşturup depolayabileceği anlamına gelir!
Hızlı Kontrol
Bir Docker görüntüsü oluşturup gönderecek bir Jenkins işi kurdunuz. Git deponuzda yeni kod değişiklikleri var.
Özet: Derleme ve Gönderme
Harika iş çıkardınız! Bu derste şunları öğrendiniz:
- Jenkins ortamınızı Docker ile etkileşime hazır hale getirmeyi.
- Docker kayıt defteri kimlik bilgilerini Jenkins'te güvenli bir şekilde yönetmeyi.
- Bir Dockerfile kullanarak Docker görüntüsü oluşturacak bir Jenkins işi yapılandırmayı.
- Yeni oluşturulan görüntüyü bir Docker kayıt defterine göndermeyi.
- Otomatik derlemeleri tetiklemenin farklı yollarını anlamayı.
Bu adımları otomatikleştirmek, Sürekli Entegrasyonun temel bir parçasıdır ve Sürekli Teslimat için zemin hazırlar!
Sıkça Sorulan Sorular
“Jenkins ile Docker İmajları Oluşturma” dersi ücretsiz mi?
Evet — “Jenkins ile Docker İmajları Oluşturma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve DevOps Bootcamp kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. DevOps Bootcamp kursu toplamda 4 dersten oluşur.
“Jenkins ile Docker İmajları Oluşturma” dersinde ne öğreneceğim?
Kod değişiklikleri yapıldığında Docker imajlarını otomatik olarak oluşturup kayıt deposuna gönderecek Jenkins işlerini yapılandırın. DevOps Bootcamp ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
DevOps Bootcamp öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te DevOps Bootcamp, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Jenkins ile Docker İmajları Oluşturma” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu DevOps Bootcamp dersinde kod yazıp çalıştırabilir miyim?
Evet. Her DevOps Bootcamp dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Jenkins’e Giriş
- Jenkins ile Docker İmajları Oluşturma
- Jenkins ile Otomatik Dağıtım
- Jenkinsfile ile Kod Olarak Jenkins Pipeline