The production Alyx had interruptions of service. The container becomes unresponsive and it is unclear if it is due to the container running out of space or compute resources.
In the meantime a bigger instance with a clean log files has been started, but the solution is temporary.
To make the solution more scalable, we want the container to be stateless. This means:
the container contains no hard coded settings: all configuration settings are provided by environment variable supplied at run time. There is only one settings.py files for openalyx, dev alyx and prod alyx
the container contains no data or files: the first example are log files that should be on an attached volume
Here are the concrete steps:
[ ] use docker-compose to run the containers, and attach a volume to the container to write the logs in
[ ] simplify the logging output for production, there is no need to log both to std and to file
[ ] add ibl_reports in the container
[ ] move docker images to AWS repositories
Settings:
[ ] use AWS secrets and URL like postgres authentication
[ ] move sensitive configuration in environment variables, and write a single setting file
The production Alyx had interruptions of service. The container becomes unresponsive and it is unclear if it is due to the container running out of space or compute resources.
In the meantime a bigger instance with a clean log files has been started, but the solution is temporary.
To make the solution more scalable, we want the container to be stateless. This means:
Here are the concrete steps:
docker-compose
to run the containers, and attach a volume to the container to write the logs inibl_reports
in the container