Because this is the first iteration, there is little background to provide. LITS would like to work Docker into its existing processes and IT Architecture has used Docker extensively in similar build & package environments. So we will start from there, adding creation of a Docker image and deployment of a web into into the existing build and package processes and demonstrate running the resulting container in different contexts.
- Dockerize and existing, real Emory web app. Note: we are intentionally starting with a public app that does not use Shibboleth, which adds additional complexity we'll get to in subsequent iterations.
- Create a Docker basic Docker image for an application server. Note: this will be basic, so we can add details and variations in subsequent iterations.
- Integrate the creation of the Docker image into the existing Emory build & package process.
- Integrate the deployment of the web app into the Docker image with our existing build & package process.
- Push the resulting Docker image to a private Emory Docker registry. Note: we'll use IT Architecture's Emory DockerHub account for now and potentially setup and internal registry in a subsequent iteration.
- Demonstrate pulling the Docker image from the repository and running it in various contexts.
Draft schematic provided by Alex Tudor, click to enlarge and view:
- New build & package server dockerpoc1.cc.emory.edu. It was necessary to create a new build & pacakge server for one reason alone—the old build & package server was an old version of RHEL. We need a current RHEL 7 (or perhaps most up-to-date 6) to run Docker.
- Build and package environment for the WebEase Web App on the new build & package server: dockerpoc1.cc.emory.edu:/home/package/work/emory-webease-webapp-2.0. To run the build and package, ssh to the build & package server as the user pacakge or a user in the group package and run the script "package" in the emory-webease-webapp-2.0 directory.
- WebEase 2.0 distribution materials in Subversion <https://svn.service.emory.edu:8443/repos/emoryoit/distributions/emory-webease-webapp-2.0/>. This includes the build scripts and collateral for the software packages as well as the Dockerfile and supporting resources for the Docker image.
- Emory DockerHub private registry. If you would like access to the Emory registry on DockerHub. Create a DockerHub account and send your username to Steve Wheat <firstname.lastname@example.org>.
- Distribution materials for the Emory tomcat app server image <https://svn.service.emory.edu:8443/repos/emoryoit/distributions/docker/emory-tomcat8-base-1.0/>.
- Build and package environment for the Emory tomcat app server image: dockerpoc1.cc.emory.edu:/home/package/work/emory-tomcat8-base-1.0. To run the build & package, ssh to the build & package server as the user package or a user in the group package and run the script "package" in the emory-tomcat8-base-1.0 directory.
We successfully dockerized the WebEase web app can can show the application image being build, stored in a repo, pulled, and run as a container in various contexts. We've also laid the groundwork for teams to start working on a base app server image and other infrastructure images into which we can deploy apps.
Potential Next Steps
- Create more/different desired base app server images
- Setup and internal Emory DockerHub registry
- Dockerize a Shibboleth Service Provider (SP) that could be bundled with one or more application deployments