En los foros de Discourse, he leído que 1 GB y un máximo de 2 GB de memoria deberían ser suficientes; sin embargo, esas dos opciones no hacen que mi sitio web funcione sin problemas. Cuando ejecuto mi archivo docker-compose con 4 GB de memoria, funciona al 90-95 %, lo cual es considerable. Otras cosas en el archivo docker-compose son un sitio web estático HTML que construí y un proxy nginx. ¿Podrías indicarme si existe algún truco o configuración en Discourse para que funcione más suavemente con menos RAM?
Necesitas ajustar la cantidad de workers y el búfer de la base de datos. Por lo tanto, las opciones que deberías ajustar serían:
db_shared_buffersUNICORN_WORKERS
Aquí puedes ver las estimaciones de uso por cada Unicorn:
Discourse puede ejecutarse con 512 MB de RAM; no es una buena experiencia, pero es posible. Tu problema es que Discourse revisa los recursos del servidor (como el nodo completo) y planifica el uso de los recursos para aprovechar la mayor cantidad posible, ya que Discourse asume que se ejecutará de forma aislada.
¿Puedes compartir el archivo docker-compose aquí para que podamos hacer sugerencias apropiadas?
Aquí está el archivo docker-compose. Tuve que eliminar algunos enlaces a imágenes ya que no puedo publicar más de 2, pero esto debería ser suficiente. ¿Dónde debería colocar la variable de entorno del búfer de la base de datos?
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 envuelves tu código sin formato con líneas que contengan solo ```, será mucho más fácil de leer.
Como primer paso, te recomiendo que uses ./launcher para compilar e iniciar tu instancia de Discourse. Si lo deseas, puedes usar ./launcher para compilarla y luego iniciarla con docker-compose (al menos yo he hecho algo similar para compilar e iniciar imágenes de Discourse con Kubernetes).
Estás utilizando imágenes de Bitnami, las cuales no tienen ningún tipo de soporte por parte de los mantenedores de Discourse y probablemente consumirán más memoria RAM que la Instalación Estándar Oficial de Discourse.
¿por qué las imágenes de bitnami siguen siendo tan populares?
respondiendo a mi propia pregunta, parece que bitnami es la única opción idiomática de docker, donde las compilaciones son deterministas y se centran en las variables de entorno. Discourse utiliza docker por defecto, pero lo trata más como un arranque para sistemas de compilación tradicionales que requieren que inicies sesión por SSH y configures/mantengas desde la terminal.
Es correcto. Si quieres ayuda aquí, sigues la instalación estándar. Si quieres ayuda de Bitnami, puedes usar su imagen.
Supongo que querrás leer esto: