"Docker-ize" the GraceDB server code
We'd like to update the GraceDB server code and its dependencies so that it can be turned into a Docker image and easily deployed. This will involve:
- Changing the server code to play nicely with this construction
- Creating a docker image for the server code alone, with gunicorn running as the entrypoint
- Creating an apache/shibboleth image - Scott K suggests to package these together and then use supervisord or systemd as the entrypoint
- Creating a MySQL image
- Making a docker-compose image, file, whatever it's called to get all of the containers to start and talk to each other.
Questions:
- How to manage logs so that they are preserved if the container goes down and appended to when it starts up again?
- How to manage database in the same way?
- Cron jobs included as part of one of the above images?
- How to include current "bin" repository?
I started working on this a few months ago; the branch is stale but can be easily brought up-to-date: https://git.ligo.org/lscsoft/gracedb/tree/docker