无需重建应用程序即可更新私有插件

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.