Spring Boot Docker Image

Deniz TÜRKMEN
3 min readNov 2, 2022

--

Maven Fabric8 Plugin

Merhabalar,

Bu yazımda Spring boot uygulamamızı dockerfile yazmadan maven plugin ile docker image almayı inceliycez.

Uygulama örneğimiz için IntelliJ Ide ile proje oluşturcaz. Bunun için ilk olarak bir tane proje oluşturalım. New Poroject dedikten sonra projemize isim ve java versiyonu girelim.

Basit bir web projesi olsun. Bunun için spring web ve spring boot devtools bağımlılık olarak ekleyelim.

Projemiz başarılı şekilde oluştu. Dosya yapısına bakacak olursak,

Şimdi de basit bir şuan ki zamanı gösteren metot yazalım. Bunun için bir tane controller oluşturalım. Controller kodumuz,

import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.time.LocalDateTime;@RestController
public class DateNowController {
@GetMapping(value = "/tarih")
public ResponseEntity<LocalDateTime> dateNow(){
return com.exampleResponseEntity.ok(LocalDateTime.now());
}
}

Uygulamamızı çalıştırıp “http://localhost:8080/tarih” path’ine istek attığımızda

Uygulamamız çalışmaktadır. Şimdide yazımısın konusu olan maven ile dockerfile dosyası yazmadan docker image oluşturalım. Bunun için pom.xml dosyamıza,

Not: Fabric8 docker komut listesi.

Görüldüğü gibi pom.xml dosyamıza image alma için gerekli yerleri ekledik. ilk olarak “docker images” komutu ile localimizde imageları listeleyelim.

Not: Eğer makinezde maven yüklü değil ise,

sudo apt-get updatesudo apt-get install -y maven

Komutlları ile maven yükleyebilirsiniz.

Terminalden image alma için yazacağımız komut,

mvn clean install

Şimdi de tekrar “docker images” komutu ile image’mıza bakalım.

Image başarılı şekilde alınmıştır. Burada aldığımız image ayrıca ileri de lazım olur diye latest ile tagledim. Çünkü repository alanımıza göndermek isteyebiliriz. Alınan imagedan bir container oluşturup doğru şekilde çalışıp çalışmadığını test edelim. Bunun için,

docker run — name container_name— rm -dp 5000:8080 image_name

Container başarılı şekilde oluştu. Şimdide tarayıcıdan localhost:5000/tarih pathine gittiğimizde

Image başarılı şekilde çalışmaktadır.

Bu yazımızın da sonuna gelmiş bulunmaktayız. Araştırmalarım ve sektörde karşılaştığım senaryolar üzerine yazılarımı yazmaya devam edeceğim. Umarım faydalı bir yazı olmuştur. Yazımı okuduğunuz için teşekkürler.

Referanslar;

--

--

Deniz TÜRKMEN
Deniz TÜRKMEN

No responses yet