.. _containerization: ================ Containerization ================ Web Reflectivity runs in Docker containers. The application is loosely coupled to ancillary services and easily deployable. A quick look to file `docker-compose.local.yml` shows the following images to be generated: - **web** runs the Web Reflectivity app. Image is built to use the host's network. - **db** runs the posgreSQL database storing Web Reflectivity data like models and fits - **redis** runs the queue manager, where fitting jobs requested by the user are queued as tasks to be run later. - **nginx** runs the reverse proxy engine serving Web Reflectivity to the WWW - **worker** runs the fitting engine `refl1D`. This image is used only when running in the developer's workstation. Docker Volumes -------------- Each image mentioned above uses volumes to mount certain directories or configuration files to the appropriate system location. Named volumes: - **web-static** is used by `webref` and `nginx` and is mounted to `/var/www/web_reflectivity/static` - **pgdata** is used by `db` and is mounted to `/var/lib/postgresql/data` Each image will mount its component logs to `/var/log`.