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, la tua avvertenza :fire: del 2018 sul message bus legato esclusivamente al db 0 di Redis è ancora valida, o possiamo ora utilizzare un diverso ID di database di un’istanza Redis per ospitare diverse istanze di Discourse?

Ho notato nella guida multisite-configuration-with-docker che è definito un db_id: 2; pensavo potesse riferirsi all’ID del database Redis, da cui questa domanda :face_with_monocle:

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

SÏ, per quanto ne so, è ancora al 100% corretto. PUB/SUB in Redis è legato al DB 0. Discourse multisite è progettato per funzionare correttamente con piÚ istanze che comunicano con un unico Redis con db 0.

Pub/Sub non ha alcuna relazione con lo spazio delle chiavi. È stato realizzato per non interferire con esso a nessun livello, inclusi i numeri dei database.

La pubblicazione su db 10 sarĂ  ricevuta da un subscriber su db 1.