Why is "rebuild" so tightly coupled to container run status?

Rebuild is a catch all update, which can:

  • Update Discourse source
  • Update OS level dependencies, like Ruby major verson
  • Update to newer and incompatible versions of PostgreSQL, where it takes care of updating the data disk format for the newer version
  • Update the Docker image. Just as an example, earlier this year we changed from Ubuntu 16.04 to last Debian and all is transparent to the user, just type ./launcher rebuild app.

Rebuilds aren’t necessary all the time, they are mandatory just a few times a year when a huge dependency update happens. For all other updates you can have 0 downtime updates clicking on the web updater in the admin UI.

For more “devops” points, you can try:

and much more at #howto:sysadmin

13 Likes