redis: Add Redis container instructions (Dockerfile and README)
authorW. Trevor King <wking@tremily.us>
Thu, 12 Dec 2013 21:42:35 +0000 (13:42 -0800)
committerW. Trevor King <wking@tremily.us>
Sun, 29 Dec 2013 17:43:56 +0000 (09:43 -0800)
README.md
build.sh
redis/Dockerfile.template [new file with mode: 0644]
redis/README.md [new file with mode: 0644]

index 2bb4edc1edecca39886e2e157c9af7eac0bdc515..95d562b66d8a5aea349448b2f36417b3e3d5d6bf 100644 (file)
--- a/README.md
+++ b/README.md
@@ -19,7 +19,8 @@ The dependency graph is:
     `-- gentoo-portage  (adds portage directory)
         `-- gentoo-en-us  (adds locale)
             `-- gentoo-syslog  (adds syslog-ng and associates)
-                `-- buildbot  (adds a Buildbot master and slave)
+                |-- buildbot  (adds a Buildbot master and slave)
+                `-- redis  (adds Redis)
 
 Run:
 
index 5c81b401f30f780d4ee70aa33545c5a37f26a92f..ace1ef0ee21f9e2cecfe6adaa15747899a537f70 100755 (executable)
--- a/build.sh
+++ b/build.sh
@@ -39,6 +39,7 @@ REPOS="
        gentoo-en-us
        gentoo-syslog
        buildbot
+       redis
        "
 
 die()
diff --git a/redis/Dockerfile.template b/redis/Dockerfile.template
new file mode 100644 (file)
index 0000000..0148eff
--- /dev/null
@@ -0,0 +1,40 @@
+# Copyright (C) 2013 W. Trevor King <wking@tremily.us>
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# * Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# * Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation
+# and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+FROM NAMESPACE/gentoo-syslog:TAG
+MAINTAINER A. U. Thor <author@example.com>
+#VOLUME ["PORTAGE:/usr/portage:ro", "PORTAGE/distfiles:/usr/portage/distfiles:rw"]
+RUN emerge -v dev-db/redis
+RUN eselect news read new
+RUN rc-update add redis default
+
+# Container networking happens automatically
+RUN sed -i 's/need net$/use net/' /etc/init.d/*
+
+# A configurable environment variable (e.g. CONFIG_URL) would be nice.
+# Until then, hardcode the tweaks I need.
+RUN sed -i 's/\(# maxmemory-policy.*\)/\1\nmaxmemory-policy allkeys-lru/' /etc/redis.conf
+
+CMD rc default && tail -F /var/log/messages
+EXPOSE 6379
diff --git a/redis/README.md b/redis/README.md
new file mode 100644 (file)
index 0000000..1e7e2b2
--- /dev/null
@@ -0,0 +1,17 @@
+Run this [Redis][] image with:
+
+    $ docker run -d -name redis-0 wking/redis
+
+Then [link][linking] to it from your client container:
+
+    $ docker run -link redis-0:redis your-client
+
+Inside your client, use the `REDIS_PORT` environment variable (which
+should be something like `tcp://172.17.0.8:6379`) to configure your
+client's Redis connection.  Linking like this *does not* expose the
+port on your host interface (that's what `-p` is for).  You can spin
+up as many Redis containers as you like (`redis-1`, `redis-2`, …), and
+link to any of them from any client container.
+
+[Redis]: http://redis.io/
+[linking]: http://docs.docker.io/en/latest/use/port_redirection/#linking-a-container