Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Deploying a Spring Boot Application to Bluemix in 20 Minutes via Docker

DZone's Guide to

Deploying a Spring Boot Application to Bluemix in 20 Minutes via Docker

Everyone loves Spring, and creating cloud-ready applications with the framework is pretty simple

· Cloud Zone
Free Resource

Are you joining the containers revolution? Start leveraging container management using Platform9's ultimate guide to Kubernetes deployment.

I really want to learn more about the Java framework Spring. The simplicity to build enterprise applications together with Spring's momentum makes it really interesting. So I started with a simple tutorial and deployed that Spring application to Bluemix

Spring provides a simple hello world Spring Boot with Docker tutorial with a Spring Boot application with one REST API. Maven and Gradle can be used, not only to build the Java application but also a Docker image which can be deployed to Bluemix. 

The Spring tutorial states that you need 15 minutes for the tutorial. In my case that was true since I had the prerequisites JDK 1.8, Maven and Docker already installed. For the deployment of the application you don't need more than 5 additional minutes. 

I won't repeat all the steps from the Spring tutorial here, but essentially this is what you need to do: 

- Clone a Github project. Use the 'complete' version of the application 

- Build the project via Maven or Gradle 

- Optional: Run the application locally: Run the built jar file which comes with Tomcat and your application 

- Build the Docker image via Maven or Gradle plugins 

The tutorial describes how to push the image to Docker Hub (via "docker push springio/gs-spring-boot-docker"). To push the image to Bluemix follow the next steps instead. 


> cf login 

> cf ic login 

> docker tag springio/gs-spring-boot-docker registry.ng.bluemix.net/nheidloff/gs-spring-boot-docker <- change the namespace 

> docker push registry.ng.bluemix.net/nheidloff/gs-spring-boot-docker <- change the namespace 

After this you'll see the image on Bluemix. 


In order to run a container invoke these commands: 


> cf ic run --name gs-spring-boot-docker -p 8080:8080 -d -t registry.ng.bluemix.net/nheidloff/gs-spring-boot-docker <- change the namespace 

> cf ic ip request 

> cf ic ip list -a 

> cf ic ip bind 134.168.15.128 gs-spring-boot-docker <- change the IP 

Alternatively you can use the Bluemix UI to create a container. Choose the new image, define the port 8080 and bind an IP address. 

Open the application in a web browser via yourIP:8080.

Using Containers? Read our Kubernetes Comparison eBook to learn the positives and negatives of Kubernetes, Mesos, Docker Swarm and EC2 Container Services.

Topics:
spring ,bluemix ,docker

Published at DZone with permission of Niklas Heidloff, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}