Docker in a development scenario


Details
Using Docker we will demonstrate an effective development scenario, where we use Gradle to build and to orchestrate the toolstack for development and testing of the application.
A common challenge today in a continuous delivery setup is to have production-like environments available for testing and development. Docker can resolve this constraint, however you need something to bind everything together - and this is where Gradle does the trick.
After a quick introduction to Docker and Gradle the presentation will focus on developing working code in a sample web application. We will demonstrate how to define a production-like environment for the web app using Docker images for a web server and a database. The definition of these images will be integrated in the build script and can be seamlessly executed as part of a natural daily development workflow as well as for system- and deployment testing.
During the presentation we will go into details on how Docker works and demonstrate this by showing running code.
The integration between Gradle and Docker is done with a Docker plugin for Gradle developed by Praqma. This plugin will be used to define the Docker images and orchestrate their relationships. For any given commit in your SCM there will be a complete working setup for development, testing and possible deployment to production.
In the end we have a build script for the application, definition of Docker database images (which tests data), and system test. All this can be build and executed with a single Gradle command. With a setup like this, everything needed for the application developer is part of the build script. The developer is not depending on installation of external system (exemplified by the database). Furthermore by encapsulating the system test in a Docker image, it can be executed on your CI server without the installation of a complicated tool stack. Potentially the build script could push these images to a production environment and start the containers.
No prior knowledge of Gradle or Docker is required, but you should not be afraid of the command line.
A Joint Praqma & Trifork Meetup.
http://photos1.meetupstatic.com/photos/event/6/1/2/6/600_434244870.jpeg
http://photos1.meetupstatic.com/photos/event/6/1/3/b/600_434244891.jpeg

Sponsors
Docker in a development scenario