Inżynieria oprogramowaniaJavaWeb application

Docker – budowa obrazu dla aplikacji w Spring Boot

docker-spring

Docker: obraz

Przygotowanie obrazu dockerowego jest podzielone na etapy:

  1. Utworzenie pliku Dokerfile, który zawiera instrukcje niezbędne do zbudowania obrazu;
  2. Zbudowanie obrazu na podstawie Dockerfile;

Po tych czynnościach można uruchomić już obraz z aplikacją.

Dockerfile

Dockerfile to najczęstsza nazwa dokumentu, na podstawie którego tworzony jest obraz. Nazwa może być dowolna. Najlepiej umieścić go w katalogu głównym aplikacji Spring Boot.

Jego budowa może być następująca:

FROM openjdk:8u191-jdk-alpine3.9
ADD target/springboot-docker-0.0.1-SNAPSHOT.jar .
EXPOSE 8000
CMD java -jar springboot-docker-0.0.1-SNAPSHOT.jar --envname=prod

W pierwszej kolejności podawane są narzędzia/środowisko jakie ma znajdować się w kontenerze. Ponieważ Spring Boot wymaga środowiska Java, dlatego też została ona dodana.

Elementy jakie można umieść w kontenerze są dostępne na stronie:
https://hub.docker.com

Druga linia Dockerfile definiuje elementy jakie mają zostać zawarte wewnątrz kontenera. Dla aplikacji Spring Boot będzie to plik z rozszerzeniem .jar znajdujący się w katalogu target.

W trzeciej linii jest ustawiany port kontenera jaki ma zostać wystawiony na zewnątrz – port przez jaki dokonywana będzie komunikacja.

Ostatnią linią są parametry uruchomieniowe.

Budowanie obrazu

Aby zbudować obraz należy przejść do katalogu, w którym znajduję się Dockerfile a następnie z poziomu linii komend wykonać polecenie posiadającą następującą składnie:

docker build -f Dockerfile -t <nazwa>:<tag> .
    • docker build – komenda do budowy obrazu.
    • -f Dockerfile – wskazanie na plik, na podstawie którego ma zostać zbudowany obraz.
    • -t <nazwa>:<tag> . – ustalenie nazwy oraz tagu dla obrazu. Domyślny tag to latest. Kropka oznacza katalog bieżący

Przykładowo polecenie może wyglądać w następujący sposób:

docker build -f Dockerfile -t springboot-app .

Uruchomienie obrazu

Po zbudowaniu obrazu dostaniesz informacje na temat jego IMAGE_ID. Jest to klucz identyfikujący dany obraz. Aby uruchomić obraz należy wykonać komendę:

docker run -p 8000:8080 <image_id>;

np:

docker run -p 8000:8080 b0fc

W powyższej składni pojawia się zapis -p 8000:8080. Informuje ona, że port wystawiony przez aplikacje (8080) ma być przekierowany na port kontenera (8000). Wówczas cała komunikacja z aplikacją za pośrednictwem kontenera odbywa się na porcie 8000.

Materiały dodatkowe

Wideo, na którym dokładnie zobaczysz jak torze obraz zobaczysz w poście dotyczącym Docker dla programistów – od podstaw

Tags:
Show Buttons
Hide Buttons