How to set redis DB ID in Docker container?

I have one data container and I would like to use several web_only containers (several forums on separate servers). How to I pass a DB ID to web_only container so that multiple forums use their own cache?

Without this the stats reported in Admin -> Reports are mixed up between different forums.

I’ve got the same issue. I have an existing redis cluster (with replication and failover) that I want Discourse to use, but I can’t find a way to tell Discourse which database index to use.

I’ve found the corresponding setting via this answer. It’s hidden in discourse_defaults.conf:

It’s called redis_db, so the corresponding setting in the container yaml should be DISCOURSE_REDIS_DB.

Definitely do not do anything like this :fire: . Message Bus which is responsible for long polling relies on pub/sub, pub/sub is always on “db 0” not configurable.

If you try to co-host multiple Discourses on one Redis DB expect some very major amount of breakage.

Thank you for the warning! :bowing_man:

@sam, sua advertência :fire: de 2018 sobre o message bus estar exclusivamente vinculado ao Redis db 0 ainda é precisa, ou agora podemos usar um ID de banco de dados diferente de uma instância do Redis para hospedar diferentes instâncias do Discourse?

Notei no tutorial multisite-configuration-with-docker que há um db_id: 2 definido. Pensei que isso pudesse se referir ao ID do banco de dados do Redis, daí esta indagação :face_with_monocle:

         secondsite:
           adapter: postgresql
           database: b_discourse
           pool: 25
           timeout: 5000
           db_id: 2
           host_names:
             - b.discourse.example.com

Sim, isso ainda está 100% correto, pelo que sei. O PUB/SUB no Redis está vinculado ao DB 0. O Discourse multisite foi projetado para funcionar bem com múltiplas instâncias comunicando-se com um único Redis usando o db 0.

Pub/Sub não tem relação com o espaço de chaves. Foi criado para não interferir nele em nenhum nível, incluindo os números de banco de dados.

Publicar no db 10 será ouvido por um assinante no db 1.