Sui forum di Discourse ho letto che 1 GB e al massimo 2 GB di memoria dovrebbero essere sufficienti; tuttavia, queste due opzioni non fanno funzionare il mio sito web in modo fluido. Quando eseguo il mio file docker-compose con 4 GB di memoria, funziona circa al 90-95%, che è molto. Altre cose nel file docker-compose sono un sito web HTML statico che ho costruito e un proxy nginx. Potreste gentilmente farmi sapere se esiste qualche trucco o impostazione su Discourse per farlo funzionare più fluidamente con meno RAM?
È necessario regolare il numero di worker e il buffer del database. Le opzioni da modificare sono quindi:
db_shared_buffersUNICORN_WORKERS
Qui puoi vedere le stime di utilizzo per ogni Unicorn:
Discourse può essere eseguito con 512 MB di RAM: non è un’esperienza ottimale, ma è possibile. Il problema è che Discourse analizza le risorse del server (l’intero nodo) e pianifica l’utilizzo delle risorse per sfruttarne quante più possibile, basandosi sull’assunzione che verrà eseguito in isolamento.
Puoi condividere qui il file docker-compose in modo che possiamo fare suggerimenti appropriati?
Ecco il file docker-compose. Ho dovuto rimuovere alcuni link alle immagini poiché non posso pubblicarne più di due, ma questo dovrebbe essere sufficiente. Dove dovrei posizionare la variabile d’ambiente del buffer del DB?
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
Se avvolgi il tuo codice grezzo con righe contenenti solo ```, sarà molto più facile da leggere.
Come primo passo, ti consiglio di utilizzare ./launcher per compilare e avviare la tua istanza di Discourse. Se lo desideri, puoi usare ./launcher per compilarla e poi avviarla con docker-compose (almeno io ho fatto qualcosa di simile per compilare e avviare immagini di Discourse con Kubernetes).
Stai utilizzando immagini Bitnami, che non sono supportate dai maintainer di Discourse e probabilmente consumeranno più RAM rispetto all’installazione standard ufficiale di Discourse
perché le immagini bitnami sono ancora così popolari?
rispondendo alla mia domanda, sembra che bitnami sia l’unica opzione Docker idiomatica, dove le build sono deterministiche e incentrate sulle variabili d’ambiente. Discourse utilizza Docker per impostazione predefinita, ma lo tratta più come un bootstrap per sistemi di build tradizionali che richiedono l’accesso tramite SSH e la configurazione/manutenzione dal terminale.
Esatto. Se vuoi aiuto qui, segui l’installazione standard. Se vuoi aiuto da Bitnami, puoi usare la loro immagine.
Forse vorrai leggere questo: