Sur les forums de Discourse, j’ai lu que 1 Go et jusqu’à 2 Go de mémoire devraient suffire, cependant, ces deux options ne font pas fonctionner mon site web de manière fluide. Lorsque j’exécute mon fichier docker-compose avec 4 Go de mémoire, il fonctionne à environ 90-95 %, ce qui est beaucoup. Les autres éléments dans le fichier docker-compose sont un site web statique en HTML que j’ai créé et un proxy nginx. Pourriez-vous s’il vous plaît me dire s’il existe une astuce ou des paramètres dans Discourse pour le faire fonctionner plus fluidement avec moins de RAM ?
Vous devez ajuster le nombre de workers et le tampon de la base de données. Les options à ajuster sont donc :
db_shared_buffersUNICORN_WORKERS
Voici les estimations d’utilisation par Unicorn :
Discourse peut fonctionner avec 512 Mo de RAM ; ce n’est pas une expérience optimale, mais c’est possible. Votre problème est que Discourse analyse les ressources du serveur (en tant que nœud complet) et planifie l’utilisation des ressources pour en tirer le meilleur parti, car Discourse suppose qu’il s’exécutera seul.
Pouvez-vous partager le fichier docker-compose ici afin que nous puissions faire des suggestions appropriées ?
Voici le fichier docker-compose. J’ai dû retirer certains liens d’images car je ne peux pas en poster plus de deux, mais cela devrait suffire. Où devrais-je placer la variable d’environnement du tampon de la base de données ?
version: '2'
services:
nginx:
image: ''
#image: 'itshady/nginx'
ports:
- '80:80'
depends_on:
- discourse
intellectus:
image: '
# image: 'itshady/intellectus'
ports:
- '90:80'
postgresql:
image: ''
environment:
- ALLOW_EMPTY_PASSWORD=yes
volumes:
#- './data/postgresql:/bitnami/postgresql'
- 'postgresql_data:/bitnami/postgresql'
redis:
image: ''
environment:
- ALLOW_EMPTY_PASSWORD=yes
volumes:
- 'redis_data:/bitnami'
discourse:
image: 'docker.io/bitnami/discourse:2-debian-10' #2-debian-10
ports:
- '100:3000'
depends_on:
- postgresql
- redis
volumes:
- './data/discourse:/bitnami'
environment:
- POSTGRESQL_HOST=postgresql
- POSTGRESQL_ROOT_USER=postgres
- POSTGRESQL_CLIENT_CREATE_DATABASE_NAME=bitnami_application
- POSTGRESQL_CLIENT_CREATE_DATABASE_USERNAME=bn_discourse
- POSTGRESQL_CLIENT_CREATE_DATABASE_PASSWORD=bitnami1
- DISCOURSE_POSTGRESQL_NAME=bitnami_application
- DISCOURSE_POSTGRESQL_USERNAME=bn_discourse
- DISCOURSE_POSTGRESQL_PASSWORD=bitnami1
#- DISCOURSE_HOSTNAME=forums.intellectus.ca
- DISCOURSE_HOSTNAME=${FORUM_URL}
- DISCOURSE_EMAIL=
- SMTP_HOST=
- SMTP_PORT=
- SMTP_USER=
- SMTP_PASSWORD=
sidekiq:
image: 'docker.io/bitnami/discourse:2-debian-10'
depends_on:
- discourse
volumes:
- './data/discourse:/bitnami'
command: 'nami start --foreground discourse-sidekiq'
environment:
- DISCOURSE_POSTGRESQL_NAME=bitnami_application
- DISCOURSE_POSTGRESQL_USERNAME=bn_discourse
- DISCOURSE_POSTGRESQL_PASSWORD=bitnami1
- DISCOURSE_HOST=discourse
- DISCOURSE_PORT=3000
#- DISCOURSE_HOSTNAME=forums.intellectus.ca
- DISCOURSE_HOSTNAME=${FORUM_URL}
- SMTP_HOST=
- SMTP_PORT=
- SMTP_USER=
- SMTP_PASSWORD=
volumes:
postgresql_data:
driver: local
# external: true
redis_data:
driver: local
# external: true
discourse_data:
driver: local
# external: true
Si vous entourez votre code brut avec des lignes contenant uniquement ```, il sera beaucoup plus facile à lire.
En première étape, je vous recommande d’utiliser ./launcher pour construire et lancer votre instance Discourse. Si vous le souhaitez, vous pouvez utiliser ./launcher pour la construire, puis la lancer avec docker-compose (du moins, j’ai procédé de manière similaire pour construire et lancer des images Discourse avec Kubernetes).
Vous utilisez des images Bitnami, qui ne sont pas du tout prises en charge par les mainteneurs de Discourse et qui utiliseront probablement plus de RAM que l’installation standard officielle de Discourse.
pourquoi les images bitnami sont-elles toujours si populaires ?
je réponds moi-même à ma question, il semble que bitnami soit la seule option docker idiomatique, où les builds sont déterministes et centrées autour des variables d’environnement. Discourse utilise docker par défaut mais le traite davantage comme des amorces pour les systèmes de build traditionnels qui vous obligent à vous connecter en ssh et à configurer/maintenir depuis le terminal.
C’est exact. Si vous voulez de l’aide ici, vous suivez l’installation standard. Si vous voulez de l’aide de Bitnami, vous pouvez utiliser leur image.
Je suppose que vous voudrez peut-être lire ceci :