Please have a look at this installation of Moodle with docker scripts: https://github.com/docker-scripts/moodle
I would appreciate any suggestions or feedback. It is even better if you give it a try, otherwise would be difficult to fully understand how it works.
In any case, I would appreciate a review of the scripts that make update, upgrade, and install plugins: update.sh, upgrade.sh, install-plugins.sh
The part that install plugins seems particularly clumsy, hackish and dirty, but I couldn't find a cleaner or more elegant solution. In general, I think that we need more cli tools to automate things from the command line. moosh does a good job, but it needs a more systematic approach (in my opinion).
The recommended steps for making an upgrade are these:
- Make a clone of the site for testings:
ds clone test
- Make an upgrade on the test site:
ds upgrade moodle_test MOODLE_33_STABLE
- Check that everything works as expected and that any problems can be fixed.
- Upgrade the main site:
ds upgrade moodle MOODLE_33_STABLE
- Delete the testing site:
ds clone-del test
For the update usually there is no risks of breaking anything in the process, so no need to try it first on a test site. It can be done with a simple: ds update
In both cases (update and upgrade) a full backup is done automatically before starting the process, just in case, or as an easy way to revert (downgrade).