J’essaie de mettre en œuvre des conteneurs séparés, mais avec une base de données distante. J’ai suivi les instructions ci-dessus ainsi que le guide pour configurer une base de données PostgreSQL distante. La configuration fonctionne, mais je me demande pourquoi il y a deux références identiques (sous web_only et data) vers la même base de données. Cela me laisse penser que je fais quelque chose de mal et que le conteneur web_only n’utilise même pas le conteneur data.
Si vous utilisez une base de données distante, vous n’avez pas besoin de créer le conteneur de données qui contient une base de données. Notez que vous avez besoin à la fois de PostgreSQL et de Redis (vous pourriez donc avoir besoin du conteneur de données pour cela).
Je ne sais pas vraiment ce que vous entendez par « deux conteneurs », mais si vous supposez que deux conteneurs signifient deux instances Discourse distinctes, alors vous vous trompez de direction.
Cet article aide à configurer un conteneur d’application et un conteneur de base de données séparés, ce qui est utile pour les utilisateurs avancés recherchant une certaine flexibilité.
Si vous souhaitez installer/héberger deux sites Discourse sur la même machine, regardez peut-être du côté de Discourse multisite : Multisite configuration with Docker
Alors, quel conteneur était en cours d’exécution ? Si c’était app, alors non, vous exécutez une ancienne version de discourse-setup.
Faites un git pull avant de continuer pour vous assurer que vous utilisez la dernière version de discourse-setup.
Si vous avez un conteneur data ou web-only en cours d’exécution, vérifiez alors ce qui a empêché l’autre de démarrer. Généralement, le conteneur web-only échoue à démarrer parce qu’un processus (serveur web) est déjà en cours d’exécution sur le port 80/443.
Comme je l’ai dit, j’ai fait tourner un forum autonome pendant un mois. Lorsque je voulais en créer un nouveau, plusieurs pistes ont été explorées :
Je voulais exécuter un conteneur autonome séparé sur le même serveur, sans succès.
Configuration multisite avec Docker : conteneur différent pour le web et la base de données, comme décrit ici : Multisite configuration with Docker, sans succès.
Si vous souhaitez simplement exécuter un deuxième conteneur autonome, vous devrez modifier les fichiers YAML pour utiliser un répertoire et un port différents. Il faudra peut-être également désactiver Let’s Encrypt.
Pour info, si vous souhaitez mesurer les performances, il ne faut pas le faire sur une machine de production. Préférez lancer un VPS distinct et l’utiliser pour les tests de performance.
Tenter d’exécuter deux instances distinctes de Discourse sur la même machine peut entraîner une installation très corrompue, ce qui n’est pas idéal.
Cette commande créera des conteneurs de données et web distincts uniquement si aucun fichier app.yml n’existe au moment de son exécution. Elle ne créera pas deux conteneurs web.
Je pense que j’aurais dû laisser cette fonctionnalité non documentée. Et, en réalité, cela n’aide pas à passer à une configuration à deux conteneurs, donc cela ne devrait probablement pas figurer ici du tout.
Peut-être bien. C’est une grande aide et, comme discourse-setup, elle sert à un objectif très précis : une nouvelle installation très standard. Mes scripts d’installation l’utilisent depuis un bon moment. Cela peut être un moyen facile de passer à deux conteneurs si vous êtes prêt à sauvegarder l’ancien conteneur et à restaurer sur le nouveau.
Ma préoccupation a toujours été que cela serait difficile à prendre en charge, car des personnes qui ne le comprennent pas essayeront de l’utiliser, puis ne pourront plus utiliser la documentation, car « rebuild app » ne fonctionnera plus. De plus, savoir quand il faut reconstruire le conteneur de base de données est également difficile. J’ai récemment eu un échec de reconstruction parce que Redis était en version 3.0 alors que la version 4.0 est désormais requise. Ensuite, PostgreSQL a également dû être mis à jour, ce qui nécessitait de suivre une séquence d’étapes, mais il fallait savoir quand reconstruire le conteneur de données et quand reconstruire le conteneur web, ainsi que comment modifier le chemin par rapport à ce qui est recommandé. Tout s’est déroulé sans accroc — pour moi, mais essayer de communiquer cela à quelqu’un qui ne sait pas ce qu’est Bash, dans un forum, serait frustrant pour toutes les parties.
Je pense qu’il vaudrait mieux maintenir une barrière élevée pour créer une installation non standard, afin de protéger les gens contre eux-mêmes.