Over a million developers have joined DZone.

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

Discover a centralized approach to monitor your virtual infrastructure, on-premise IT environment, and cloud infrastructure – all on a single platform.

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 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.

Learn how to auto-discover your containers and monitor their performance, capture Docker host and container metrics to allocate host resources, and provision containers.

spring ,bluemix ,docker

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

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

{{ parent.tldr }}

{{ parent.urlSource.name }}