Cloud Native Buildpacks w Spring Boot

Cloud Native Buildpacks w Spring Boot

Cloud Native Buildpacks jest to mechanizm wprowadzony w Spring Boot w wersji 2.3. Jest to projekt zrealizowany we współpracy firmy Heroku oraz firmy Pivotal odpowiedzialnej za rozwijanie Springa. Mechanizm ten pozwala na utworzenie obrazu Dockera niezależnie od platformy gdzie te obrazy są tworzone. Tradycyjne tworzenie obrazów za pomocą plików Dockerfile jest niewystarczające ze względu np. na uzależnienie się od konkretnej wersji JDK.

Samo podejście Cloud Native to elastyczne podeście do tworzenia aplikacji działających w chmurze. Aplikacje typu cloud-native, w odróżnieniu od tradycyjnych aplikacji monolitycznych, są tworzone przy użyciu wielu niezależnych elementów zwanych mikrousługami/mikroserwisami, wdrażanych w środowiskach chmurowych.

Z tego artykułu dowiesz się jak zbudować obraz Dockera za pomocą Spring Boota 2.3 i mavena. Do tego celu wykorzystam aplikację napisaną w artykule:

https://javaleader.pl/2019/08/03/spring-security-basic-authentication/

upewnij się, że masz zainstalowanego Dockera polceniem:

docker -v

w terminalu wykonujemy polecenie które zbuduje obraz dockera:

mvn spring-boot:build-image

wynik polecenia:

[INFO] Successfully built image 'docker.io/library/spring-security-basic-authentication:0.0.1-SNAPSHOT'
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3:15.478s
[INFO] Finished at: Fri Aug 28 11:42:45 CEST 2020
[INFO] Final Memory: 21M/107M

uruchamiamy aplikację z obrazu:

docker run -p 8080:8080 docker.io/library/spring-security-basic-authentication:0.0.1-SNAPSHOT

poleceniem:

docker ps

zweryfikujemy uruchomione obrazy:

CONTAINER ID        IMAGE
79b5d716ec19        spring-security-basic-authentication:0.0.1-SNAPSHOT

pod adresem:

http://localhost:8080

znajduje się aplikacja uruchomiona w kontenerze.

Leave a comment

Your email address will not be published.


*