docker-hello-world-spring-boot
docker-hello-world-spring-boot copied to clipboard
Hello World sample shows how to deploy SpringBoot RESTful web service application with Docker and with Kubernetes
Prerequisite
Optional:
Docker-Compose
Java 1.8 or 11.1
Maven 3.x
Steps
Clone source code from git
git clone https://github.com/dstar55/docker-hello-world-spring-boot .
Build Docker image
docker build -t="hello-world-java" .
Maven build will be executes during creation of the docker image.
Note:if you run this command for first time it will take some time in order to download base image from DockerHub
Run Docker Container
docker run -p 8080:8080 -it --rm hello-world-java
Test application
curl localhost:8080
response should be:
Hello World
Stop Docker Container:
docker stop `docker container ls | grep "hello-world-java:*" | awk '{ print $1 }'`
Run with docker-compose
Build and start the container by running
docker-compose up -d
Test application with curl command
curl localhost:8080
response should be:
Hello World
Stop Docker Container:
docker-compose down
Deploy under the Kuberenetes cluster
Prerequisite
MiniKube
Installed: MiniKube
Start minikube with command:
minikube start
Retrieve and deploy application
kubectl create deployment hello-spring-boot --image=dstar55/docker-hello-world-spring-boot:latest
Expose deployment as a Kubernetes Service
kubectl expose deployment hello-spring-boot --type=NodePort --port=8080
Check whether the service is running
kubectl get service hello-spring-boot
response should something like:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-spring-boot NodePort xx.xx.xxx.xxx <none> 8080:xxxxx/TCP 59m
Retrieve URL for application(hello-spring-boot)
minikube service hello-spring-boot --url
response will be http..., e.g:
http://127.0.0.1:44963
Test application with curl command(note: port is randomly created)
curl 127.0.0.1:44963
response should be:
Hello World