In the previous blog entry I described how to document REST APIs in Spring Boot applications via Swagger. Below I explain how to deploy these applications as Docker containers to IBM Bluemix. As example I use again the Spring REST sample.
In the Dockerfile (in the project root directory) define how to build the Docker image.
1
2
3
4
5
6
FROM java:8
VOLUME /tmp
ADD target/gs-rest-service-0.1.0.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
From the root directory invoke the following commands.
1
2
3
mvn package
docker build -t gs-rest-service .
docker run --name gs-rest-service -p 80:8080 -d -t gs-rest-service
After this you can run the sample in our local Docker environment.
http://dockerhost/greeting
http://dockerhost/v2/api-docs?group=greetings
http://dockerhost/swagger-ui.html
In order to push the image to Bluemix invoke the following commands.
1
2
3
4
cf login
cf ic login
docker tag gs-rest-service registry.ng.bluemix.net/nheidloff/gs-rest-service
docker push registry.ng.bluemix.net/nheidloff/gs-rest-service
To run the sample on Bluemix create a Docker container group.
After this you can run your REST API on Bluemix.
http://gs-rest-service-cg.mybluemix.net/greeting
http://gs-rest-service-cg.mybluemix.net/v2/api-docs?group=greetings
http://gs-rest-service-cg.mybluemix.net/swagger-ui.html