DCHQ, a governance, deployment automation & lifecycle management platform for Docker-based applications, has built integration with Red Hat Container Registry that allows DevOps teams to:
- Define granular access controls for Red Hat Container Registry and other Docker repositories – allowing development teams to restrict the ability to pull images to specific users or groups
- Model multi-tier applications that leverage Red Hat Container Registry images using an extremely intuitive interface with support for Docker Compose, cross-image environment variable bindings, plug-in execution, application clustering & scale out
- Mix and match images from different repositories within the same application template
In the example described in this blog, we will demonstrate how a simple Java-based PizzaShop application can be modeled leveraging a MySQL database image pulled from the Red Hat Container Registry.
We first add Red Hat Container Registry as a Docker repository from within the Docker Registry page in DCHQ. We then define who is able to pull images from this repository.
- Private – indicates that only the logged in user is able to pull images from this repository
- Everyone – indicates that all tenant users are able to pull images from this repository
- Groups & Users – allows you to specify which groups and users are able to pull images from this repository
You will notice that Tomcat is being pulled from Docker Hub while MySQL is being pulled from the Red Hat Container Registry. You can also see that the database.url environment variable in Tomcat is retrieving MySQL’s IP and database name at request time using the environment variable bindings. Lastly, DCHQ’s plug-in framework allows for bash scripts to be executed at request time and post-provisioning within a running container. In this case, the plug-in is grabbing the PizzaShop WAR file from a URL and deploying it in Tomcat.
When this application is requested from the Library page, the PizzaShop application will be up and running with cross image dependencies taken care of. Developers can access a wide range of day-2 operations to update, backup, scale in or out, monitor, and facilitate continuous delivery with out-of-box integration with Jenkins.