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.