Failed to Bootstrap [read-only filesystem]

The Problem

The error I have:

root@the-shroudy:./launcher bootstrap app

    WARNING: We are about to start downloading the Discourse base image
    This process may take anywhere between a few minutes to an hour, depending on your network speed

Please be patient

Unable to find image 'discourse/base:2.0.20190321-0122' locally
2.0.20190321-0122: Pulling from discourse/base
34667c7e4631: Pulling fs layer
d18d76a881a4: Pulling fs layer
119c7358fbfc: Pulling fs layer
2aaf13f3eff0: Pulling fs layer
9f39923192f6: Pulling fs layer
2aaf13f3eff0: Waiting
9f39923192f6: Waiting
119c7358fbfc: Verifying Checksum
119c7358fbfc: Download complete
d18d76a881a4: Verifying Checksum
d18d76a881a4: Download complete
2aaf13f3eff0: Verifying Checksum
2aaf13f3eff0: Download complete
34667c7e4631: Verifying Checksum
34667c7e4631: Download complete
34667c7e4631: Pull complete
d18d76a881a4: Pull complete
119c7358fbfc: Pull complete
2aaf13f3eff0: Pull complete
9f39923192f6: Verifying Checksum
9f39923192f6: Download complete
9f39923192f6: Pull complete
Digest: sha256:00e3cbd59813c17f416dde4cd1cad43338ceec96886aa3e69392bbbc6de8c966
Status: Downloaded newer image for discourse/base:2.0.20190321-0122
cd /pups && git pull && /pups/bin/pups --stdin
/usr/bin/docker: Error response from daemon: error while creating mount source path '/var/discourse/shared/standalone': mkdir /var/discourse: read-only file system.
ERRO[0000] error waiting for container: context canceled 
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one

This only started happening after my first intial launch of Discourse. I had everything up and running, but after I tried to add these following plugins, and changed from HTTP to HTTPS, this happened.

  - git clone
  - git clone
  - git clone
  - git clone

This is the part in the app.yml I changed for the HTTPS port:

#  - "8060:80"   # http
  - "8060:443" # https

Not sure where I’m at fault here, or what’s going on. I did a little research, and I saw a post stating that I would have to change my file-system, which makes no sense, cause I did have Discourse up and running with no issues prior to this problem.

What I’ve Done

  • reverted back to orginal settings I had when I had the board up.
  • removed apps and plugins

Running discourse on non standard ports is not supported.

Let’s encrypt must have ports 80 and 443. It’s really best to enable it with discourse setup, but now that you have mucked with app.yml by hand it might not work.

I recommend that you delete your app.yml, run discourse-setup to get https working, then add the official plugins, then add the custom wizard plugin.


I need to run it through a proxy. 80 is being used. And I am also running through CloudFlare for proxy & SSL.
What’s the best way for me to configure that?

I want to force HTTPS as well through this proxy.

Then you need to have the proxy handle https.

Through nginx?

this is what I have:

server {
   location / {

obviously I need more, not sure though as I am still new to nginx.

No matter what I do, remove the extra ports, or even make them normal - I cannot get this to start. I keep getting the same error message. I am not able to run Discourse anymore. I’ve even tried reinstalling fresh numerous times, and I get the same error every time.

This error message is completely unrelated to changing ports. The filesystem has gone read-only for some reason and the docker daemon cannot start the container. You need to figure out why it’s read-only.

1 Like

I’m not sure how the hell that happened - I only have bee trying to run Discourse, and I haven’t changed any setting or anything of the server itself. So now I’m at this stage where I have no clue how to fix this.

Just to clarify - the first time I installed, no issues.
When I tried to rebuild for the first time, this issue popped up.
There was no instruction on mounting anything, and I cannot find anything about it.
I’m going to be really sad if I cannot use Discourse :frowning:

Read only filesystem implies there are system level problems with your Docker setup…

I installed docker via snap install docker and apt install

Also never changed anything after I did that, and Discourse ran fine… now I cannot.

Did you really do both? That can’t be good.

You’ve got a number of things going on here:

  • docker appears to be broken
  • you need to get your front end NGINX to provide https support
  • you probably have something broken in your app.yml file
  • if you have the CloudFlare orange cloud on, that could also cause problems.

You were absolutely right. My docker was completely installed incorrectly.

I instead decided to use just apt install and snap install docker but that was the wrong way.

I completely removed docker with these steps:

snap remove docker
rm -R /var/lib/docker
sudo apt-get remove docker docker-engine

After that, I followed the exact Docker CE installation steps here.

All-in-all, my Docker was installed incorrectly, and did not have the appropriate permissions to work correctly.

Also to note, I am still able to use the custom ports and CloudFlare.