Şuayb'in BloguŞuayb'in Blogu
Ana Sayfa
Kategoriler
Oyunlar
MediumHakkındaİletişim
Dil
Tema
    1. Blog
    2. Programlama
    3. Spring Boot Docker Entegrasyonu

Spring Boot Docker Entegrasyonu

İlk yayın21 Şubat 2025
Son güncelleme22 Şubat 2025
Okuma süresi3 dk okuma
JavaKotlinSpring BootDockerKonteynerizasyonJib
XLinkedInFacebook
Spring Boot Docker Entegrasyonu

Beğeni yükleniyor...

Spring Boot, Docker, Buildpacks ve Jib kullanarak uygulamaları verimli bir şekilde konteynerleştirmek için birden fazla yöntem sunar. Bu kılavuz, Spring Boot uygulamalarını Docker kullanarak oluşturma ve dağıtma süreçlerini ele almaktadır.


Son güncelleme22 Şubat 2025

Toplam görüntülenmeGörüntülenme yükleniyor...

Önceki makaleSpring Boot Kubernetes EntegrasyonuSonraki makaleSpring Boot Config Server
Şuayb Şimşek

Yazan

Şuayb Şimşek

Spring Boot, güvenlik, mikroservis ve cloud-native mimari konularında pratik teknik notlar paylaşan backend odaklı fullstack geliştirici.

Uzmanlık

  • Spring Boot
  • Go
  • Mikroservis
  • Next.js
  • Cloud Native

Bağlantılar

GitHubLinkedInMedium

Benzer yazılar

Spring Boot Kubernetes Entegrasyonu
Programlama

Spring Boot Kubernetes Entegrasyonu

Spring Boot uygulamalarını Kubernetes üzerinde nasıl ölçeklenebilir ve konteyner tabanlı olarak dağıtabileceğinizi öğrenin.

21 Şubat 20253 dk okuma
JavaKotlinSpring BootKubernetesMikroservisKonteynerizasyon
Spring Boot Configuration Properties
Programlama

Spring Boot Configuration Properties

@ConfigurationProperties ile tip-güvenli yapılandırma tanımlamayı, @Validated ile ayarları doğrulamayı ve profile-specific application-{profile}.yml dosyalarıyla ortama göre değer yönetimini öğrenin.

4 Şubat 20263 dk okuma
JavaKotlinSpring BootYapılandırma
Spring Boot GraphQL JWE Kimlik Doğrulama
Programlama

Spring Boot GraphQL JWE Kimlik Doğrulama

Stateless şifreli JWT’ler (JWE) ile Spring Boot GraphQL API’lerinizi güvenli hale getirmeyi; kullanıcı kimliği ve rolleri JPA ile bir veritabanında saklamayı öğrenin.

17 Mayıs 20256 dk okuma
JavaKotlinSpring BootGüvenlikJWTJWEGraphQL

Hakkımda

Spring Boot, mikroservis, güvenlik ve daha fazlası hakkında yazılar.

İletişimYeni başladıysan

Son yazılar

  • Captain Tsubasa 2: World Fighters
  • Captain Tsubasa: Rise of New Champions
  • Spring Boot Configuration Properties
  • Spring Boot GraphQL JWE Kimlik Doğrulama
  • Spring Boot JPA ile JWE Kimlik Doğrulaması

Popüler konular

JavaKotlinSpring BootGüvenlikJWEJWT

Abone ol

Yeni yazılar yayınlandığında pratik backend ve fullstack notlarını al.

Sosyal

© 2024-2026 Şuayb'in Blogu. Tüm hakları saklıdır.

🌟 Neden Spring Boot İçin Docker Kullanmalıyız?

Bu bölümde Neden Spring Boot İçin Docker Kullanmalıyız? konusunu netleştirip uygulamada kullanacağınız temel noktaları özetliyoruz.

  • Taşınabilir Dağıtım: Uygulamaları farklı ortamlar arasında tutarlı bir şekilde çalıştırın.
  • Ölçeklenebilirlik: Konteynerleştirilmiş uygulamaları kolayca ölçeklendirin ve yönetin.
  • Hafif ve Verimli: Kaynak kullanımını optimize ederek gereksiz yükü azaltın.
  • DevOps Uyumlu: CI/CD pipeline hatlarına sorunsuz şekilde entegre edin.

📋 Gereksinimler

Aşağıdaki bileşenlere sahip olduğunuzdan emin olun:

  • ☕ Java Geliştirme Kiti (JDK) 17+
  • 📦 Maven veya Gradle
  • 🐳 Docker yüklü ve çalışır durumda

🛠️ Adım 1: Bağımlılıkları Ekleyin

Docker desteğini etkinleştirmek için Spring Boot Maven Plugin, Jib Plugin ve Spring Boot Web Starter eklentilerini yapılandırma dosyanıza ekleyin.

Maven:

XMLpom.xml
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>com.google.cloud.tools</groupId>
            <artifactId>jib-maven-plugin</artifactId>
            <version>3.3.2</version>
        </plugin>
    </plugins>
</build>

Gradle:

GROOVYbuild.gradle
plugins {
    id 'org.springframework.boot' version '3.2.0'
    id 'com.google.cloud.tools.jib' version '3.3.2'
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
}

🛠️ Adım 2: Basit Bir Spring Boot Uygulaması Oluşturun

Docker konteyneri içinde dağıtılacak bir REST uç noktası tanımlayın.


▶️ Adım 3: Docker İmajı Oluşturma ve Çalıştırma

Bu bölümde Adım 3: Docker İmajı Oluşturma ve Çalıştırma konusunu netleştirip uygulamada kullanacağınız temel noktaları özetliyoruz.

Seçenek 1: Buildpacks Kullanarak

Spring Boot, Buildpacks ile Dockerfile kullanmadan Docker imajları oluşturmayı destekler.

BASH
mvn spring-boot:build-image
BASH
gradle bootBuildImage

Konteyneri çalıştırın:

BASH
docker run --rm -p 8080:8080 myproject:0.0.1-SNAPSHOT

Seçenek 2: Jib Kullanarak

Jib, Docker daemon olmadan optimize edilmiş konteyner imajları oluşturmayı sağlar.

BASH
mvn jib:dockerBuild
BASH
gradle jibDockerBuild

Jib ile oluşturulan konteyneri çalıştırın:

BASH
docker run --rm -p 8080:8080 myproject:0.0.1-SNAPSHOT

▶️ Uygulamayı Çalıştırma

Konteyner çalıştırıldıktan sonra, REST API'yi test edin:

BASH
curl -X GET http://localhost:8080/hello

Beklenen Çıktı:

PLAINTEXTsnippet.txt
Docker üzerinde çalışan Spring Boot uygulamasından merhaba!

🏁 Sonuç

Artık Spring Boot Docker Entegrasyonu için üretim odaklı bir Spring Boot temeliniz var. Sonraki adımda ayarları kendi domainine uyarlayıp test ve gözlemlenebilirlik katmanını ekleyerek gerçek trafik altında doğrulayın.

JAVADockerApplication.java
package com.example.docker;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class DockerApplication {

    public static void main(String[] args) {
        SpringApplication.run(DockerApplication.class, args);
    }

    @GetMapping("/hello")
    public String hello() {
        return "Docker üzerinde çalışan Spring Boot uygulamasından merhaba!";
    }
}
KOTLINDockerApplication.kt
package com.example.docker

import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RestController

@SpringBootApplication
@RestController
class DockerApplication {

    @GetMapping("/hello")
    fun hello(): String = "Docker üzerinde çalışan Spring Boot uygulamasından merhaba!"
}

fun main(args: Array<String>) {
    runApplication<DockerApplication>(*args)
}