In the previous chapter, we ran our different microservices directly in the host operating system--so, all the dependencies and data that your application uses were installed directly on the system.
Most of the time, it is fine to do so, because running a Python application in a virtual environment downloads and installs dependencies inside a single directory. However, if the application requires a database system, you need that database to run on your system, unless it is just an SQLite file. For some Python libraries, you might also need some system headers to compile extensions.
In no time, your system is going to have various software running, which were installed along the way when developing your microservices. It is not a problem for your development environment as long as you don’t need to work with different versions of a service you are working on. However, if some potential contributors try to install your applications locally, and are forced to...