A minimal Docker image to run Roshi.
What is Roshi?
Roshi implements a time-series event storage via a LWW-element-set CRDT with limited inline garbage collection. Roshi is a stateless, distributed layer on top of Redis and is implemented in Go. It is partition tolerant, highly available and eventually consistent.
Roshi is super cool.
How To Use This Image
Roshi uses Redis as its persistence layer. You will need to have a Redis instance running somewhere for Roshi to connect to. A production installation of Roshi should have at least 3 independent Redis clusters running in different failure domains. For demo purposes you can just run Roshi on a single Redis instance with zero fault tolerance. See the various readme's for more details.
Starting a Roshi instance
# Start a Redis instance named my-redis and daemonize docker run --name my-redis -d redis # Start a Roshi instance named my-roshi, linked to my-redis with an alias of redis_backend, exposing port 6302 to localhost docker run --name my-roshi --link my-redis:redis_backend -p 6302:6302 roshi -redis.instances=redis_backend:6379 # In another shell you can curl /metrics to see that it's running curl localhost:6302/metrics # If you are using boot2docker curl "$(boot2docker ip):6302/metrics"
This image includes
EXPOSE 6302 (the default roshi port), so container linking will work.
View the Roshi license information.
Hey just submit a PR. Ain't no thang.