/docker-hubot

A ready-to-run Hubot Docker container built with GitHub's generator-hubot and including several adapters.

MIT LicenseMIT

Hubot

This is a Docker image for Hubot based on the Getting Started documentation and hubot-generator. It supplements with several JS-only chat adapters to make the out-of-box experience easy and serve as a reasonable basis for customization.

It contains adapters for:

Quick Start

Getting up and running with an ephemeral Hubot instance is easy:

$ docker run -d --rm --name=mybot \
    -e HUBOT_SLACK_TOKEN=xoxb-YOUR-KEY/HERE \
    kylev/hubot \
    --adapter slack

Or you can use docker-compose to add persistence by setting a REDIS_URL that hubot-redis-brain will use.

version: '2'
services:
  redis:
    image: redis
    volumes:
      - redis:/data
  hubot:
    image: kylev/hubot
    command: -a slack
    depends_on:
      - redis
    environment:
      HUBOT_SLACK_TOKEN: xoxb-YOUR-KEY/HERE
      REDIS_URL: redis://redis

volumes:
  redis:

As a Base Image

Want to build your own image with a custom script and hubot-auth added for fine tuned control and your own custom script? Just write your own Dockerfile. I've included jq in the image to simplify handling JSON configs.

FROM kylev/hubot:latest

RUN \
  npm install --save --production --silent hubot-auth && \
  jq '. += ["hubot-auth"]' external-scripts.json > new-scripts.json && \
  mv new-scripts.json external-scripts.json

ADD custom_thingy.coffee /hubot/scripts/

Or maybe you just want something entirely self-contained with your favorite set of plugins.

FROM kylev/hubot:latest

ENV HUBOT_HIPCHAT_JID yourvaluehere
# Set more hubot config env here.

RUN \
  npm install --save --production --silent \
    hubot-business-cat hubot-trello hubot-plusplus hubot-mongodb-brain
COPY my-scripts.json external-scripts.json

CMD ["-a", "hipchat"]

Contributors

If you would like to contribute, please write a pull request! Short of that, detailed bug reports are always appreciated.

License

See the LICENSE file for license rights and limitations (MIT).