Installation de Discourse avec Portainer

J’utilise Portainer pour gérer mes conteneurs. Je souhaitais installer Discourse dans un nouveau conteneur, mais je n’y arrive pas. Toute aide serait appréciée.

CE QUE J’AI ESSAYÉ ?
J’ai lu le fichier GitHub et j’ai essayé de le suivre, mais je n’ai pas pu exécuter les commandes de console car je n’avais pas encore créé de conteneur. J’ai donc créé/cloné une image de Discourse sur DockerHub et je l’ai installée via Portainer, mais lorsqu’elle est lancée, elle s’arrête avec le code d’erreur 0.

Pourquoi cette installation n’est-elle pas prise en charge, @rishabh ? Portainer n’est qu’un panneau de contrôle Docker.

Parce qu’ils ne prennent en charge qu’un seul type d’installation, à savoir sur un VPS propre où toutes les modifications et les scripts s’exécutent sans problème. Tout le reste est une installation personnalisée et ils ne le prendront pas en charge, car les façons d’utiliser les conteneurs sont infinies.

Pour pouvoir installer Discourse, vous devez exécuter le démarrage via l’utilitaire launcher. Si vous pouvez ajouter des scripts à Portainer, cela devrait être relativement facile à faire. Sinon, vous pouvez simplement installer Discourse sur un VPS et pousser le conteneur résultant pour voir si cela fonctionne.

Une autre méthode, qui pourrait être plus simple, consiste à découpler tous les composants et à les déployer individuellement. Cela signifie (sans constituer une liste exhaustive) :

  • PostgreSQL
  • Redis
  • Unicorns
  • Discourse
1 « J'aime »

Oui, nous n’avons qu’une seule installation officielle, principalement pour permettre à notre communauté de bien la prendre en charge. Si nous en avions plusieurs, il serait difficile pour tout le monde de fournir des conseils de qualité pour le dépannage et la configuration.

4 « J'aime »

Ce que vous devrez faire, c’est utiliser ./launcher pour construire votre conteneur, puis le lancer avec Portainer, en passant toutes les variables d’environnement nécessaires.

Consultez Can Discourse ship frequent Docker images that do not need to be bootstrapped ? pour plus de discussion.

La solution simple pour laquelle vous pouvez obtenir de l’aide gratuitement est de suivre les instructions d’installation officielles. Si vous avez besoin d’aide avec Portainer et que vous avez un budget, vous pouvez poser votre question dans Marketplace ou me contacter. Je ne connais pas bien Portainer, mais j’ai créé des conteneurs pour les lancer avec d’autres outils.

1 « J'aime »

Je ne veux pas avoir l’air ignorant, où se trouve cet utilitaire de lancement ? Je regardais le chemin /discourse avec l’image Docker que j’ai tirée et je n’ai trouvé aucun script… encore une fois, peut-être que je regarde mal ? Je vais probablement exécuter un conteneur Docker Ubuntu standard et tout configurer moi-même pour le test comme une installation standard ?

J’ai trouvé des instructions comme celles-ci :
La méthode recommandée pour obtenir l’image Docker Bitnami Discourse est de tirer l’image préconstruite du Registre Docker Hub.

docker pull bitnami/discourse:latest

Pour utiliser une version spécifique, vous pouvez tirer une balise versionnée. Vous pouvez consulter la liste des versions disponibles dans le registre Docker Hub.

docker pull bitnami/discourse:[TAG]

Si vous le souhaitez, vous pouvez également construire l’image vous-même en clonant le dépôt, en vous déplaçant dans le répertoire contenant le Dockerfile et en exécutant la commande docker build. N’oubliez pas de remplacer les espaces réservés de chemin APP, VERSION et OPERATING-SYSTEM dans l’exemple de commande ci-dessous par les valeurs correctes.

git clone https://github.com/bitnami/containers.git
cd bitnami/APP/VERSION/OPERATING-SYSTEM
docker build -t bitnami/APP:latest .

Comment utiliser cette image

Discourse nécessite l’accès à une base de données PostgreSQL pour stocker des informations. Nous utiliserons l’Image Docker Bitnami pour PostgreSQL⁠ pour les besoins de la base de données.

Utilisation de la ligne de commande Docker

Étape 1 : Créer un réseau

docker network create discourse-network

Étape 2 : Créer un volume pour la persistance PostgreSQL et créer un conteneur PostgreSQL

$ docker volume create --name postgresql_data
docker run -d --name postgresql \
  --env ALLOW_EMPTY_PASSWORD=yes \
  --env POSTGRESQL_USERNAME=bn_discourse \
  --env POSTGRESQL_PASSWORD=bitnami123 \
  --env POSTGRESQL_DATABASE=bitnami_discourse \
  --network discourse-network \
  --volume postgresql_data:/bitnami/postgresql \
  bitnami/postgresql:latest

Étape 3 : Créer un volume pour la persistance Redis et créer un conteneur Redis

$ docker volume create --name redis_data
docker run -d --name redis \
  --env ALLOW_EMPTY_PASSWORD=yes \
  --network discourse-network \
  --volume redis_data:/bitnami/redis \
  bitnami/redis:latest

Étape 4 : Créer des volumes pour la persistance Discourse et lancer le conteneur

$ docker volume create --name discourse_data
docker run -d --name discourse \
  -p 8080:8080 -p 8443:8443 \
  --env ALLOW_EMPTY_PASSWORD=yes \
  --env DISCOURSE_DATABASE_USER=bn_discourse \
  --env DISCOURSE_DATABASE_PASSWORD=bitnami123 \
  --env DISCOURSE_DATABASE_NAME=bitnami_discourse \
  --env DISCOURSE_HOST=www.example.com \
  --network discourse-network \
  --volume discourse_data:/bitnami/discourse \
  bitnami/discourse:latest

Étape 5 : Lancer le conteneur Sidekiq

docker run -d --name sidekiq \
  --network discourse-network \
  --volume discourse_data:/bitnami/discourse \
  bitnami/discourse:latest /opt/bitnami/scripts/discourse-sidekiq/run.sh

Accédez à votre application sur http://your-ip/

Exécuter l’application en utilisant Docker Compose
curl -sSL https://raw.githubusercontent.com/bitnami/containers/main/bitnami/discourse/docker-compose.yml > docker-compose.yml
docker-compose up -d

Veuillez noter que ce fichier n’a pas fait l’objet de tests internes. Par conséquent, nous conseillons son utilisation exclusivement à des fins de développement ou de test. Pour les déploiements prêts pour la production, nous recommandons vivement d’utiliser son chart Helm Bitnami associé⁠.

Si vous détectez un problème dans le fichier docker-compose.yaml, n’hésitez pas à le signaler ou à contribuer à une correction en suivant nos Directives de contribution⁠.

Dépannage de Discourse

Si vous avez besoin d’exécuter des commandes administratives Discourse comme Créer un compte administrateur depuis la console⁠, vous pouvez le faire en exécutant un shell à l’intérieur du conteneur et en exécutant avec les variables d’environnement appropriées.

cd /opt/bitnami/discourse
RAILS_ENV=production bundle exec rake admin:create