In the last few chapters, we built some cool stuff with Puppet and Docker. It has all been straight forward. Now, we are getting into the more complex topics such as how to keep a state and why to keep a state in a container. Docker is known to couple hand in hand with the micro service architecture, where the container would for the most part just be receiving data and transforming it into an output for a downstream application or data source to ingest. Thus, the container never keeps any state. Docker does not limit itself to such applications. In this chapter, we are going to prove this by building a fully functional Bitbucket server with a separate Postgres backend. We will mount the data that is stateful to the underlying host and decouple the applications from that state.
The other good feature of building Bitbucket is that you can use it for your Git server at home to make sure that all your future modules are in source control. Atlasssian...