Hi,
I’m already running the following and need to understand how to configure a Discource container with a production environment:
-Postgres Server
-Nginx (reverse proxy for all sites)
-Redis
-Docker cluster
My intention is to run a Discourse container and scale as needed. However, I need to protect data as done in production.
I’ve read both pages in detail, as well as a ton of other information. Just a couple of points I’ll make:
In a production HA environment, it is not acceptable to have a single container run Rail,Redis, Postgresql, and Nginx.
It’s not clear to me if the current Discourse Docker solution will run properly on an existing Docker Cluster with many other containers already running
Our environment already has HA Postgresql, Redis, and a Docker Cluster - These should be leveraged
The Discourse rails app should have the ability to start with a ‘docker stack deploy’ function, not a ./launcher script.
I’ve run many rails containers before for enterprise applications. What I’m looking for is to understand if I’m going to need to build my own Discourse container (I hope not). And if not, where can I get the Discourse container (preferably from a ‘docker pull’ command) and start it with ‘docker stack deploy’ with a matching docker-compose.yml file.
I also need to know exactly what folders and files from inside the container I need to mount to the host (all our persistent data runs from a very fast NFS mount).
So, to recap, I intend to have a docker-compose.yml file that contains all the information to start the Discourse Rails app, including mounts, and the ability to scale replicas.
Sam, I appreciate the info. I’ll read through all of it and let you know shortly.
Note: It seems to me that the work required here to make this type of solution available is to carefully read through ‘launcher’ and produce deployment instructions that include the creation process and docker-compose.yml. I plan on doing this because I need it for myself. I’ll host my instructions on my own github repo for this (which doens’t exist yet) and link it back here.
Anche nel 2020 mi trovo con la stessa domanda. Docker Swarm, Kubernetes e Rancher sembrano essere framework di orchestrazione molto popolari e sembrano essere il metodo preferito per eseguire container in ambienti di produzione. Questo progetto rende molto difficile la configurazione, dato che si utilizza uno strumento che genera e avvia i container. Perché adottare così presto la tecnologia dei container per distribuire il proprio progetto, solo per frustrare gli utenti in futuro non tenendo il passo con tale tecnologia?
Esiste qualche approccio che possiamo adottare per farlo funzionare all’interno del nostro cluster? Possiamo salvare le immagini create dallo script in un registro Docker privato per poi aggiungerle ai nostri file docker-compose.yml utilizzabili per le distribuzioni di stack?
Hanno comprato delle sfere di cristallo scadenti per prevedere il futuro. Gliel’avevamo detto di comprarne di migliori per il prossimo progetto
Seriosamente, come hai chiesto, è facile salvare l’immagine risultante in un registro dei container e distribuirla successivamente utilizzando lo strumento che preferisci.
E dato che puoi eseguire tale container tramite script bash, Puppet, Chef, Ansible, Terraform, integrato nell’AMI, script user-data, Docker Swarm, Docker Compose, Kubernetes, Capistrano, AWS ECS o molti altri metodi, sarebbe fuori dalla nostra portata dettare la gestione della tua infrastruttura.
@Falco, Grazie mille per il contributo, è molto apprezzato.
Ho provato a convincere il nostro cliente ad acquistare un abbonamento alla licenza commerciale per Discourse, ma è fermamente deciso a voler ospitare Discourse sulla propria infrastruttura on-premises.
Sarebbe stato fantastico se Discourse vendesse direttamente contratti di supporto, dato che il cliente è disposto a pagare per i servizi. Stanno già pagando, ad esempio, per l’orchestrazione on-premises di Elastic.
È un settore molto rischioso e pericoloso in cui entrare, perché vieni incolpato per tutti i problemi del cliente e di solito non hai (o hai accesso estremamente limitato) alla sua infrastruttura reale, né hai l’autorità per modificare qualcosa, anche se ne avessi!
È un modello di business “il peggio di tutti i mondi”.