As we have observed over the years at times an update/upgrade will fail due to dependencies. Ie Docker version/OS.
My idea is for discourse to run some kind of dependency check to ensure base requirements are met. If the check fails it gives some details on what might be needed and aborts the update/upgrade process.
This will help reduce forum down time by aborting an update/upgrade of Core Discourse by aborting the process that will fail.
They try pretty hard to do that. The number of things that can go wrong is pretty large. Mostly, if you don’t keep your os up to date (and probably docker) it’s your fault.
They try to check for docker version, and the scripts I use upgrade docker if it’s known to be bad (it should should probably just always upgrade docker).
I think they might do better to always force a command line upgrade if the base image changes at all. I mostly never use it since my dashboard does a command line update with a click.
I am definitely it attempting to shift blame. The unfortunate thing with self hosted more specifically. Is not necessarily understanding the server OS. Most ppl install an OS and generally keep it upto date. But often with LTS may not know or understand upgrading the OS. Especially if they are used to rolling releases.
For example a company I help out after not updating for awhile noticed there was an update available. So they updated Docker through the web UI. Which then allowed them to update Discourse.
Due to the Ubuntu LTS not being new enough the docker update did not meet the minimum requirement. Which the web UI still allowed the update attempt. Which of course failed and took the site down.
So they attempted a command line rebuild which of course failed due to min requirements not met.
If the Updating in the web identified the Docker version was not minimum. It could have aborted the update process notifying an unmet dependency without the site going down.
I took a general look for them. As it appears they maybe running other things on the server. I have instructed them to have their tech look into upgrading the LTS to a newer version. As I did not want to try upgrading the OS in case it breaks other things they are running.
Is there an easy way to restart the container prior to the web.& Command line rebuild attempt?
I tried ./launcher start app
Which failed.
The other thing. Due to how discourse site went down can spinning up a new server with rsync work? They are running stable instead of the recommended tests passed.
If they run the :‘do-release-upgrade’ and manually upgrade Docker would this be effective to get the postgreq upgraded?
It will within the Ubuntu LTS supported version. But only the version(s) supported by the LTS. In this case their LTS is end of life. Do it does not support the min Docker version.
Ubuntu LTS versions iirc has a 4 year life of updates.
That is why I said update. In the case of eol it requires OS upgrade. But I do agree with you on that there are a wide variety of ppl whom do not follow instructions well.
When I was upgraded to admin for the company I help out for free
I had told them for over a month straight that their forum was going to crash at some point as they did not have space needed to perform rebuild app. They had a minimal sized server(7 years ago). Iirc it had a 25g space in total. Of course they didn’t listen. And ended up paying someone in here to get the forum onto a new server. Total downtime about 2 weeks maybe a bit more.
That would definitely be cool if that can be made to work. For folks like you and I who somewhat live on here we keep ourselves fairly up-to-date B’s a lot of folks in comparison who only visit after a problem arises or looking for add-ons and other more minor support issues.
Ok will advise them. However not sure how old the backup is. So imagine in their case rsync or OS upgrade will need to be explored.
On my personal server that was nearing out of date I did a lot of reading and was careful not to web/command line update. Til I was. Comfortable using the rsync procedure. And still hada couple of minor hiccups that you and the community assisted me in debugging.