From: W. Trevor King Date: Thu, 12 Dec 2013 21:42:35 +0000 (-0800) Subject: redis: Add Redis container instructions (Dockerfile and README) X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=5b43ad920f63b8cda768a4d31798084a69c08a63;p=dockerfile.git redis: Add Redis container instructions (Dockerfile and README) --- diff --git a/README.md b/README.md index 2bb4edc..95d562b 100644 --- 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: diff --git a/build.sh b/build.sh index 5c81b40..ace1ef0 100755 --- 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 index 0000000..0148eff --- /dev/null +++ b/redis/Dockerfile.template @@ -0,0 +1,40 @@ +# Copyright (C) 2013 W. Trevor King +# +# 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 +#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 index 0000000..1e7e2b2 --- /dev/null +++ b/redis/README.md @@ -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