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?
You need to tweak the amount of workers and the DB buffer. So, the options you would need to tweak would be:
db_shared_buffersUNICORN_WORKERS
Here you can see the estimates of usage per Unicorn
Discourse is able to run with 512MB of RAM its not a good experience but it’s possible. You issue is that Discourse reviews the server (as the whole node) resources and plans the resource usage to take advantage of as most resources as possible because Discourse makes the assumption it will run alone.
Can you share the docker-conpose file here so we can make appropriate suggestions?
Here is the docker-compose file. I had to remove some of the images links since I cannot post more than 2, however, this should be good. Where would I place the DB buffer environment variable?
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
If you wrap your raw code with lines that contain only ``` they will be much easier to read.
As step one, I recommend that you use ./launcher to build and launch your Discourse instance. If you want, you can use ./launcher to build it and then launch it with docker-compose (at least I’ve done similar to build and launch Discourse images with kubernetes).
You are using bitnami images and those are completely unsupported by Discourse maintainers and will probably use more RAM than using the Discourse official Standard Installation
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: