Confused about docker installation

I was looking at the docker images available for Discourse today,
I have a couple of questions

  1. On both images I came upon it lists that it installs Discourse (obviously)
    It then has a list of steps to get everything up and running primarily domain name
    and email configuration.

I am confused about the database. There is no step to configure it.
Is Postgres (or other) database included in the same image?
Is Reddis too? Or is that entirely option part?

On the list of things the Docker image will have it does not list database.

I use Docker at work for development, staging and production.
Our containers are immutable.
When we have an upgrade to push a new image out, it grabs the
latest code from git and off it goes.

We never make any changes in the container, or at least none that we would ever expect to
last longer than until the next push,.

When we wish to upgrade to an updated version of .net for instance we just
modify the base image and push that out.

Reading about the docker image for Discourse it appeared that changes were
made to the content fo the image as if it were a regular install.
Changes made to the image were meant to be persisted is this the case?

when I first read it, I expected that it meant everything is stored in the database.
but then the database is inside the container? So changes to the database
are persisted as well?

If that is the case how do I ensure that all changes are saved if I take down the container for a stop and then start it again?

Second and much more important how does that impact upgrading to a new version of the forum software?

It appeared in what I read to use the instances inside the container to do updates to itself.
I had expected a new image with the updates gets pushed out and all i well.

I guess mainly I am used to treat the docker images as cattle, they die, they get pushed out, no changes to the image are ever persisted.

I did not know that docker images that persist changes that lasts more than its next reboot?

1 Like

Hi @talkingBeat

The database is mounted in a volume outside the Docker container; so it is persistent.

Hope this helps.


That makes sense.
If Discourse comes out with a new version, and I swap out the docker
file with a new one and run it, the database will still be there?

What fo customisations that have altered files and or added / removed files?

1 Like

Hi @RockHopper and Welcome Back

The Discourse launcher script does all that for you; which is totally supported by the meta team here.

Hope this helps.