The first thing I would do here is split it into 2 containers, one data and one web.
That way you can bootstrap a new web container while the site is running.
Not against making /admin/upgrade smarter, feel free to send through a PR in that department.