hubot: Add a hubot image
authorW. Trevor King <wking@tremily.us>
Sun, 2 Mar 2014 23:13:38 +0000 (15:13 -0800)
committerW. Trevor King <wking@tremily.us>
Sun, 2 Mar 2014 23:13:38 +0000 (15:13 -0800)
I had to instal Git to avoid a:

  GET https://registry.npmjs.org/scoped-http-client
   GET https://registry.npmjs.org/async
  ERR! not found: git
  npm ERR!
   ERR! Failed using git.
   This is most likely not a problem with npm itself.
   Please check if you have git installed and in your PATH.

   Linux 3.13.0
  command "/usr/bin/node" "/usr/bin/npm" "install"
  cwd /hubot
  node -v v0.10.21
   1.3.11
   ENOGIT

error during the 'npm install'.  Other than that, this is fairly
straightforward, although I wish that the script dependencies were
handled automatically :p.

Docker doesn't let you modify /etc/hosts at the moment [1].  If you
need to add custom DNS (because your target IRC server doesn't resolve
automatically), you can use dnsmasq [2].  I added something like this
to the tail of my hubot/Dockerfile.template:

  RUN emerge -v dnsmasq
  RUN rc-update add dnsmasq default
  RUN echo 'address="/irc.example.net/192.168.0.2"' >> /etc/dnsmasq.conf
  RUN echo 'nameserver 192.168.0.1' >> /etc/resolv.dnsmasq.conf
  RUN echo 'resolv-file=/etc/resolv.dnsmasq.conf' >> /etc/dnsmasq.conf
  RUN echo 'listen-address=127.0.0.1' >> /etc/dnsmasq.conf
  RUN sed -i 's/need localmount net$/use localmount net/' /etc/init.d/dnsmasq

And fired up the container with:

  docker run ... --dns 127.0.0.1 wking/hubot /bin/bash
  # rc default
  # cd hubot
  # REDISCLOUD_URL="${REDIS_PORT}" exec bin/hubot --name "${HUBOT_IRC_NICK:-hubot}" -a irc

[1]: https://github.com/dotcloud/docker/issues/2267
[2]: https://github.com/dotcloud/docker/issues/1951#issuecomment-24960347

README.md
build.sh

index 5030c60da4358d9584b72fb6cf0cf956f71895cc..77feb3d5877f238649e896844737dfc9b1339115 100644 (file)
--- a/README.md
+++ b/README.md
@@ -24,6 +24,7 @@ The dependency graph is:
                 |-- docker-registry  (adds a Docker registry server)
                 |-- gentoo-layman  (adds layman for Gentoo overlays)
                 |   `-- package-cache  (adds a package-cache proxy)
+                |-- hubot  (adds hubot with an IRC adapter)
                 |-- memcached  (adds Memcached)
                 |-- nginx  (adds Nginx)
                 |   |-- nginx-proxy  (SSL/TLS proxying via SNI)
index b240fd14b6e949e7e1b99ccbbac0f4d85d5ea7e7..3b249f19ca268a8625db54dbde6185b305dfa9e8 100755 (executable)
--- a/build.sh
+++ b/build.sh
@@ -50,6 +50,7 @@ REPOS="${REPOS:-
        buildbot
        docker-registry
        elasticsearch
+       hubot
        kibana
        kibana-azure
        memcached