loading...

30/09/2024

Spring Boot Uygulamasını Docker ile Çalıştırma

Docker, modern yazılım geliştirme süreçlerinde sıklıkla kullanılan bir konteynerleştirme platformudur. Docker sayesinde, uygulamaları hızlı ve tutarlı bir şekilde dağıtabilir, çalıştırabilir ve yönetebiliriz. Bu yazıdma, mevcut bir Spring Boot uygulamasını Docker üzerinde nasıl çalıştıracağımızı adım adım öğreneceğiz.

Spring Boot‘un, hızlı bir şekilde üretkenlik sağlayan ve kolayca çalıştırılabilir Java uygulamaları geliştirmemizi sağlayan bir çerçeve olduğundan bahsetmiştik. Docker ise bu uygulamaları kapsayarak (containerize) herhangi bir ortamda sorunsuz bir şekilde çalıştırmamızı sağlar. Bu yazıda, mevcut basit Spring Boot uygulamamızı Dockerize etmek için gereken adımları adım adım ele alacağız. Dockerfile oluşturma, Docker imajı oluşturma ve Docker konteynerini çalıştırma gibi temel adımlara değineceğiz.

Öncelikle projemize ait jar dosyasını oluşturalım. Terminalden mvn clean package komutunu çalıştırabilirsiniz veya IDE üzerinden de işlem yapabilirsiniz;

Maven komutunu çalıştırdıktan sonra, target dizinine giderek oluşturulan jar dosyasını kontrol edebilirsiniz.

Dockerfile

Projemizin ana dizininde bir DockerFile dosyası oluşturuyoruz;

Dockerfile, içerisinde önce bir From yapımız bulunur. From yapısı-komutu, Docker imajının temelini oluşturacak olan temel imajı belirtir.
Örneğin, bir Java uygulaması için genellikle openjdk gibi bir Java imajı kullanılır.
Mevcut basit projemizde Java 17 kullanıyoruz. O halde Docker imajımızda da 17 kullanalım.

From openjdk:17-jdk-slim

Ardından Argüman olarak jar file tanımlayacağız. tanımlayacağımız jar file, target dizininde bulunan jar dosyamız olacak. Oluşturduğumuz jar dosyamızın .jar uzantısı dahil olacak şekilde belirlememiz gerekiyor.

ARG JAR_FILE=demo-0.0.1-SNAPSHOT.jar

Şimdi oluşturmuş olduğumuz jar dosyamızı ekliyoruz;

ADD ${JAR_FILE} basicproductproject.jar

Docker konteyneri başlatıldığında çalıştırılacak komutu belirtmek için bir entrypoint ile giriş noktası belirleyelim;

ENTRYPOINT ["java","-jar","basicproductproject.jar"]

Docker Compose

Docker Compose kullanarak Docker uygulamamızın bileşenlerini tanımlayalım.
Projemizin ana dizininde bir docker-compose.yml yapılandırma dosyamızı oluşturalım. Temel olarak version bilgisi bulunur. yml dosyamızı oluşturup içeriğine bakalım;

version: '1.0'
services:
  app:
    container_name: basicproductproject.jar
    image: basicproductproject.jar
    restart: always
    build: ./
    ports: 
      - "8080:8080"

Yapılandırma dosyamızsa sırasıyla;

  • servis kısmında uygulamanın container name bilgisini,
  • image bilgisi,
  • restart bilgisini, (her zaman çalışacak şekilde ayarladık)
  • build bilgisini, (nereyi çalıştıracak? her bileşeni çalıştıracak)
  • port bilgisini (8080 portunu redirect yaparak 8080 yönlendir) tanımlamış olduk.

Sonuç olarak elimizde Dockerfile, docker-compose.yml ve .jar dosyamız bulunuyor. Bu dosyaları farklı bir klasöre kopyalayalım ve projemizi IDE den bağımsız bir şekilde ayağı kaldırmayı görelim.
Bu üç dosyamızın bulunduğu klasör içerisinde terminali açarak docker-compose up -d komutunu girelim.

Bu yazımda, Spring Boot uygulamanızı Dockerize etme sürecini adım adım ele aldık.
Docker kullanarak uygulamanızı taşınabilir hale getirirken, geliştirme sürecinizi kolaylaştırabilir ve dağıtımı daha verimli hale getirebilirsiniz. Artık uygulamamızı herhangi bir ortamda çalıştırabilir ve sorunsuz bir şekilde dağıtabiliriz.

Ekstra

Spring Boot uygulamanızı bir JAR dosyasına paketledikten sonra, JVM kurulumu yapıldığı sürece, uygulamamızı herhangi bir bilgisayarda, sunucuda veya bulutta çalıştırabiliriz.

Bu süreçte backend projemizi oldukça yalın bir şekilde inşa etmiş olduk.
Projenizin gereksinimlerine göre Java ve Spring‘in gücünü kullanarak çok daha kapsamlı bir yapı kurabilirsiniz.

Sorularınız için yorum bırakabilir veya buraya tıklayarak benimle iletişime geçebilirsiniz.

İyi çalışmalar dilerim.

Posted in Software DevelopmentTaggs:
Write a comment