This is a Docker image that runs Serf service discovery next to Firehose. It is designed to be used with a load balancer running Serf event handlers to dynamically add and remove Firehose nodes. See https://github.com/firehoseio/firehose-docker for the Firehose base Docker image that this is based on.
Besides Firehose, there are two variables in this image, $SERF_CLUSTER and $SERF_ROLE. Both of these default to firehose. They control the Serf multicast (mDNS) discovery cluster name and role tag. Instances running Serf must be in the same cluster name to be discoverable.
A typical way to run this image would be to pass and environment file and publish the needed ports:
docker run --env-file /my/firehose.env -p 7946/tcp -p 7946/udp --name fh1 -h fh1 andyshinn/firehose-docker-serf
An example firehose.env file might look like:
REDIS_URL=redis://redis.b3ldn2.0001.usw3.cache.amazonaws.com:6379/0
SERF_CLUSTER=firehose
SERF_ROLE=firehose
WORKER_PROCESSES=4
LOG_LEVEL=info
PORT=7474
HOST=0.0.0.0
SERVER=rainbows
RACK_ENV=production