allow using arbitrary images for starting a sandbox
The controller no longer uses the image factories, therefore there is no longer any reasons to limit the sandbox to the os listed in dj_docker_os.
Any image (from the official registry for the moment, and maybe forever) should be allowed.
The docker os should be not be chosen at webapp creation time, but at sandbox creation time. The sandbox creation panel should display two options:
- start a sandbox from scratch (in this case the developer has to provide the name of a docker image from the official registry, with a list of predefined choices for the most common OSs)
- start a sandbox from an existing version of the webapp
The 'Webapp.docker_os_id' field should be replaced with a text entry 'Webapp.sandbox_image' (that can store any arbitrary docker image name).
Also i think we can remove the dj_docker_os table, and replace it with a ALLGO_SUGGESTED_DOCKER_IMAGES conf variable and it should reference docker os by symbolic names (eg: stable, lts rather than version numbers which will never be up-to-date), eg: debian:stable,ubuntu:latest,centos:latest,...
Security consideration: we must ensure that users cannot use any arbitrary image from allgo's private registry.