User c0ry encountered a “read-only filesystem” error while trying to bootstrap Discourse after modifying app.yml to use custom ports and adding plugins. The error occurred during Docker container initialization, specifically when attempting to create a mount path. Although pfaffman initially suggested the issue might stem from unsupported port configurations and misconfigured HTTPS, schleifer clarified that the root cause was unrelated to port changes — the filesystem itself had become read-only, preventing Docker from writing necessary files. c0ry confirmed no system-level changes had been made, and expressed frustration over the sudden breakage after a previously working install. codinghorror noted this pointed to deeper Docker setup issues. Further investigation revealed c0ry had installed Docker via both snap and apt, which pfaffman warned could cause conflicts. c0ry resolved the issue by completely uninstalling both Docker installations, removing residual data, and reinstalling Docker CE via the official instructions. After this, Discourse bootstrapped successfully, and custom ports + CloudFlare remained functional. The key takeaway: conflicting Docker installations caused filesystem permission failures, not Discourse configuration changes.
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
081f292f916c29e3d25ff66617aad7a8e468e0d534d49a0faa3abfe9f1ec7ee2
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one
root@the-shroudy:/var/discourse#
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.
This is the part in the app.yml I changed for the HTTPS port:
expose:
# - "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.
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. Port 80 is being used. I am also running through CloudFlare for proxy & SSL.
What’s the best way for me to configure that?
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.
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