Discourse prend-il en charge plusieurs machines (chacune avec un seul conteneur Docker) derrière un équilibreur de charge autonome ?
J’ai besoin d’une configuration Discourse capable de gérer la défaillance d’un serveur, donc ma réponse standard consiste à configurer 3 serveurs derrière un équilibreur de charge (l’équilibreur de charge gérant le certificat SSL).
J’ai configuré des serveurs PostgreSQL et Redis externes autonomes pour Discourse. (Tout cela est sur Google Cloud Platform). J’utilise le lanceur Discourse pour configurer le conteneur Docker dédié uniquement au web.
Discourse prend-il en charge l’exécution de plusieurs conteneurs lorsque chaque conteneur est sur une machine différente ?
Devrais-je simplement copier le conteneur Docker créé à partir de la première machine vers les autres machines ?
Comment sont gérés les logos téléchargés ?
Les logos, les favicons, etc. téléchargés sont-ils stockés dans la base de données ?
Une dernière question : le conteneur Docker est-il surveillé ? Si le conteneur Docker s’arrête pour une raison quelconque, est-ce que launcher a été configuré pour le redémarrer ?
D’accord. J’ai maintenant un Discourse fonctionnel sur une seule machine. J’ai deux autres machines. Le volume partagé docker /shared pointe vers un répertoire NFS pour permettre à toutes les machines d’accéder aux fichiers téléchargés (en particulier les logos, etc.).
J’ai copié les images Docker sur les machines 2 et 3 (docker save -o app-image local_discourse/app puis docker load -i app-image).
J’avais cru comprendre qu’une simple commande ./launcher start app suffirait, mais elle tente de vérifier containers/app.yml.
Vais-je rencontrer des problèmes si je permets que app.yml soit vérifié (et que des modifications soient apportées) à la base de données depuis les machines 2 et 3 ?
Existe-t-il une meilleure méthode pour faire fonctionner trois machines dans une seule configuration ?
Utilisez – je pense que c’est ./launcher start-command app – sur la machine entièrement configurée (la « machine de build ») pour obtenir une ligne de commande Docker complète
Copiez app.yml et effectuez ce que vous venez de tenter (launcher start).