Why Docker?

Why did the devs choose docker ?

Theres Linux Containers (LxC). Theres VM’s scripts. You could create an ISO installer.
LxC are literally containers.

For SysAdmins this docker nonsense is redundant and pointless if you have a network setup with firewalls. etc

I understand that this is simple install for those who do not know how to use linux and secure it but for sysadmins having to learn docker is pointless. LxC and VMs will always be much better than docker.

For SysAdmin’s who manage servers we create LxC and VM’s in a separate network. So I have created a dedicate VM for discourse to then create a docker container. -_-

So now is a network within a network. A dedicated isolated VM and only to create a docker container isolated from everything -_-

There’s no guide to install it dockerless, regardless if it comes with support or not. Theres no guide or assistance for exposing the host IP to the container.

1 Like

Because when they started developing Discourse, it was the best thing around.

If tney were to do it today, I’d guess that the only thing they’d do differently might be to use docker-compose rather than their own custom launcher commmand that builds and launches docker images.

You must be on a different internet than I am. From everything I see, most everyone who manages software on more than, say, 5 servers, is using some kind of container to manage things. Increasingly developers run stuff on their laptops in containers to see that versions of everything is kept consistent.

Even managing a Discourse/rails/ember development environment on a single laptop is something of a challenge.

That’s true. If you want a forum that you can use without Docker, you should not use Discourse.


Is Docker all that bad?


I support this. docker-compose would be 100% better as i just watch a crash course on docker and docker-compose. It seems that if Discourse used docker-compose i would have solved this issue without the need to create a post.

docker-compose does all the heavy lifting similar to what the launcher does but with docker-compose i could have easily configured the network and bridge.

I agree. I do use containers. just pure LxC containers. No added software required. It’s not as simple as that though. For example: One of my servers i have a bronze package which is basically for developers. Cheap and easy setup. The moment a payment is confirmed the main server gets a request to create either a lxc container or VM based on the selection of the user, obviously a domain name is required or a custom sub domain will be issued for the server(lxc/vm). It also asks the user to configure their own network which then cannot be accessed by the main network and vice verse. Its basically a small AWS

For development docker would be exceptional for laptops and dev purposes to separate the main computer files and dev files including networks.

I cannot agree nor disagree as i have not personally developed anything with Discourse/rails/ember. thats out of my scope and if the devs say its easier i am in no place to disagree with something i do not know.

This is my problem, I done over enough research on all available forums software and used quite a few of them.

My options all boiled down to 2 forums:

  1. Discourse
  2. Flarum

I choose discourse as the best forum software in all aspects and due to my only experience with docker which was Nginx Reverse Proxy Manager.

I thought all i had to do was input some of my information in the .yml file and then do docker-compose up -d. I was wrong.

The issue i currently have can be sorted it’s just going to take some time figuring out.
I refuse to use Flarum because i have used Discourse on many platforms and no offence to other good forum softwares out there but Discourse is the best available forum on the market.

Maybe an upgrade to docker-compose could help :smiley:

After doing quick research and some 5 minute guides plus some youtube.

No, docker is not bad at all. Docker is perfect for developers who use their personal machine to develop or even work computers. Since most devs don’t use Linux as there main OS creating LxC containers would not be as easy. Thats where Docker comes into play. It supports all major platforms allowing Devs to then collaborate with ease and the plus would be not messing up your entire system with files not meant to be used by the main OS.

I could actually go into a bit more detail but the latest docker/docker-compose is perfect for discourse as i see it required a lot of moving parts and its pretty easy to bundle up using docker-compse. That way if something goes wrong the devs would know exactly what to do.

I have an idea for Discourse but first i’m going to figure my install out.

1 Like

Surely this is the reason?


Why do you only officially support Docker?

Hosting Rails applications is complicated. Even if you already have Postgres, Redis and Ruby installed on your server, you still need to worry about running and monitoring your Sidekiq and Rails processes, as well as configuring Nginx. With Docker, our fully optimized Discourse configuration is available to you in a simple container, along with a web-based GUI that makes upgrading to new versions of Discourse as easy as clicking a button.


You don’t need launcher and you could create a bespoke docker compose install though it would require some significant work from you.


The main goal is not isolation, but ease of deployment…

You don’t need to isolate the container; you can run it on a routed bridge or on a bridge that has a port belonging to your internal network. The former is how we run it in production - see here a video by @mpalmer that explains how it works.

If someone really wants to do this, they can follow the same steps taken by the dockerfile itself to get the right versions of all the tools used by the supported image.

We don’t have a guide since that would require someone to maintain it, and the VAST majority of people who want this either have:

  • little experience with servers
  • knowledge enough to take what we provide and adapt it to their needs

For example, I know there’s people out there that use launcher to build an image which is deployed via their own tooling (be it lxc, kubernetes, whatever) and that works for them.

Attempting to support (for free) everyone using their own custom install of what is a complicated piece of software would be a nightmare.

Docker is a middle ground. Our system is not perfect; it’s grown a bit over time and we certainly feel the pain of some overdue refactoring. We did create launcher before docker-compose even existed.

We intend to refactor it and/or move to docker-compose, but that’s not a priority at the moment.


It’s not that hard to get launcher to start Discourse with the ENV variables required for Nginx Reverse Proxy to work. Mostly, you just add the ENV to the YML, or add them to what you get frrom ./launcher start-command app.

docker-compose wasn’t very useful when Discourse started, and may not have existed at all.


I hate Docker (it’s too easy for me, every kid can do it, so nothing special! Yawn)! And instead of simply writing the code so that it also works without the official Docker variant… I don’t get it! Even the official method doesn’t work!

And there are people who want challenges or even already master them! For them, Docker is even more of an obstacle, because they have to deal with Docker as well!

Why else would one use Docker?

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.