Nos fóruns do Discourse, li que 1 GB e no máximo 2 GB de memória deveriam ser suficientes; no entanto, essas duas opções não fazem meu site funcionar suavemente. Quando executo meu arquivo docker-compose com 4 GB de memória, ele opera em cerca de 90-95%, o que é bastante. Outros componentes no arquivo docker-compose são um site estático em HTML que criei e um proxy nginx. Você poderia me informar se existe algum truque ou configuração no Discourse para fazê-lo funcionar de forma mais suave com menos RAM?
Você precisa ajustar a quantidade de workers e o buffer do banco de dados. Portanto, as opções que você precisaria ajustar seriam:
db_shared_buffersUNICORN_WORKERS
Aqui você pode ver as estimativas de uso por Unicorn
O Discourse consegue rodar com 512 MB de RAM; não é uma experiência ideal, mas é possível. Seu problema é que o Discourse avalia os recursos do servidor (como todo o nó) e planeja o uso de recursos para aproveitar o máximo possível, pois o Discourse parte do pressuposto de que rodará sozinho.
Você pode compartilhar o arquivo docker-compose aqui para que possamos fazer sugestões adequadas?
Aqui está o arquivo docker-compose. Tive que remover alguns links de imagens, pois não posso postar mais de 2, mas isso deve ser suficiente. Onde eu deveria colocar a variável de ambiente do buffer do banco de dados?
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 você envolver seu código bruto com linhas que contêm apenas ```, ele ficará muito mais fácil de ler.
Como primeiro passo, recomendo que você use ./launcher para construir e iniciar sua instância do Discourse. Se preferir, pode usar ./launcher para construí-la e depois iniciá-la com docker-compose (pelo menos eu fiz algo similar para construir e iniciar imagens do Discourse com Kubernetes).
Você está usando imagens do Bitnami, que não são totalmente suportadas pelos mantenedores do Discourse e provavelmente consumirão mais RAM do que usar a Instalação Padrão Oficial do Discourse.
por que as imagens bitnami ainda são tão populares?
respondendo à minha própria pergunta, parece que bitnami é a única opção docker idiomática, onde as compilações são determinísticas e centradas em variáveis de ambiente. O Discourse usa docker por padrão, mas o trata mais como um bootstrap para sistemas de compilação tradicionais que exigem que você faça ssh e configure/mantenha pelo terminal.
Correto. Se você quiser ajuda aqui, siga a instalação padrão. Se quiser ajuda da Bitnami, você pode usar a imagem deles.
Acho que você pode querer ler isto: