Spring Boot Mikroservislerinizi Docker ile Konteynerleştirin

Docker Nedir?
Docker, uygulamaları ve bağımlılıklarını bir arada paketleyen, taşınabilir ve izole edilmiş konteynerlerde çalıştırmayı sağlayan bir platformdur. Bu sayede, uygulamanızın her ortamda aynı şekilde çalışmasını garanti edebilirsiniz.
Spring Boot Uygulamasını Docker ile Konteynerleştirme Adımları
Spring Boot uygulamanızı Docker ile konteynerleştirmek için şu adımları izleyin:
1. Dockerfile Oluşturma
Projenizin ana dizininde bir Dockerfile
oluşturun. Bu dosya, Docker imajınızın nasıl oluşturulacağını belirler.
# Temel imaj olarak OpenJDK kullan
FROM openjdk:17-jdk-alpine
# Çalışma dizinini oluştur
WORKDIR /app
# Maven ile derlenen jar dosyasını kopyala
COPY target/demo-0.0.1-SNAPSHOT.jar app.jar
# Uygulamayı çalıştır
ENTRYPOINT ["java", "-jar", "app.jar"]
2. Docker İmajını Oluşturma
Docker imajını oluşturmak için terminalden aşağıdaki komutu çalıştırın:
docker build -t spring-boot-demo .
Bu komut, Dockerfile
dosyasını okuyarak bir Docker imajı oluşturur ve bu imajı spring-boot-demo
adıyla etiketler.
3. Docker Konteynerini Çalıştırma
Oluşturduğunuz Docker imajını kullanarak bir konteyner başlatmak için:
docker run -p 8080:8080 spring-boot-demo
Bu komut, spring-boot-demo
imajını kullanarak bir konteyner başlatır ve uygulamayı yerel makinenizin 8080 portunda erişilebilir hale getirir.
Docker Compose ile Çoklu Konteyner Yönetimi
Docker Compose, birden fazla konteyneri yönetmek için kullanılır. Örneğin, bir mikroservis uygulaması ve bir veritabanı konteynerini birlikte çalıştırmak için docker-compose.yml
dosyasını oluşturabilirsiniz.
1. docker-compose.yml Dosyası Oluşturma
Projenizin ana dizininde docker-compose.yml
dosyasını oluşturun:
version: '3'
services:
app:
image: spring-boot-demo
build: .
ports:
- "8080:8080"
depends_on:
- db
db:
image: mysql:8
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: demo
Bu dosya, spring-boot-demo
imajını ve bir MySQL veritabanı konteynerini tanımlar.
2. Docker Compose ile Konteynerleri Başlatma
Aşağıdaki komut ile tüm hizmetleri başlatabilirsiniz:
docker-compose up
Bu komut, docker-compose.yml
dosyasında tanımlanan tüm hizmetleri başlatır.
Sonuç
Bu makalede, Spring Boot uygulamanızı Docker ile nasıl konteynerleştireceğinizi ve Docker Compose kullanarak birden fazla konteyneri nasıl yönetebileceğinizi öğrendiniz. Bu yöntemler, uygulamalarınızın daha taşınabilir ve yönetilebilir olmasını sağlar. Bir sonraki yazımızda, Kubernetes kullanarak bu konteynerleri nasıl orkestre edebileceğinizi inceleyeceğiz.