Trying to understand GitHub repositories discourse and discourse_docker

In working on an SOP (Standard Operating Procedures) for when our site is self-hosted I am trying to explain to the duck :duck: the difference between the GitHub repositories discourse and discourse_docker.

Following are three pieces of, if you will, evidence

When installing Discourse for the first time the discourse_docker repository is used.

groot@galaxy:~$ git clone /var/discourse

Now in reading posts here it notes that the branch the customers are on is tests-passed. In checking the repository discourse_docker the branch tests-passed is not found but in checking the repository discourse the branch tests-passed is found.

With regards to tests-passed in discourse_docker tests-passed is found in the directory samples, file standalone.yml and in discourse_docker tests-passed is not found in a similar site settings file like app.yml.

If one runs launcher rebuild app with bash tracing active, e.g.

groot@galaxy:/var/discourse$ sudo bash -x launcher rebuild app

it will record

I, [2020-06-07T23:49:27.550542 #1]  INFO -- : > cd /var/www/discourse && git pull

Can someone explain all of this so the duck :duck: understands.

Discourse_docker builds the docker containers that run discourse. It downloads discourse. You can set the Branch (or even a commit) of Discourse in the app.yml file that Discourse docker uses to download discourse when it builds a new container.


The discourse_docker repository is cloned on the server (by the operator) to run a Docker container.

The discourse repository is cloned inside the Docker container (by a script) to run the Discourse application.