Redis - configurazione con Docker e Rails
Per poter usare correttamente Rails e Redis insieme a Docker è necessario configurare il docker-compose nel seguente modo:
version: '3'
services:
web:
[..]
db:
[..]
redis:
image: 'redis:4.0-alpine'
command: redis-server
ports:
- 6379:6379
volumes:
- 'redis_data:/data'
volumes:
[..]
redis_data:
Questa soluzione permette di installare tramite docker-compose una istanza funzionante e operativa di redis.
Bisogna poi comunicare a Rails come raggiungere il nostro server redis poichè Docker non è solito usare il nostro network in modo convenzionale.
Per poterlo fare è necessario usare i nomi che abbiamo dato ai servizi.
Quindi all’interno di config/initializer/redis.rb vanno aggiunte le seguenti istruzioni.
if Rails.env.development?
REDIS_CLIENT = Redis.new(host: 'redis', port: 6379, db: 1)
else
REDIS_CLIENT = Redis.new(host: 'localhost', port: 6379, db: 1)
end
Ovviamente questa è una configurazione che non prevede l’utilizzo di redis con docker all’interno della produzione ma solo in ambiente di sviluppo.