nginx: Add an Nginx image
authorW. Trevor King <wking@tremily.us>
Sat, 28 Dec 2013 05:10:17 +0000 (21:10 -0800)
committerW. Trevor King <wking@tremily.us>
Thu, 2 Jan 2014 02:03:32 +0000 (18:03 -0800)
README.md
build.sh
nginx/Dockerfile.template [new file with mode: 0644]
nginx/README.md [new file with mode: 0644]

index a2879e1d72b12fcb1ed490fe21bcd70de83da302..c4956e7c4c459f8ea73b1ce167889032feb87d98 100644 (file)
--- a/README.md
+++ b/README.md
@@ -20,6 +20,7 @@ The dependency graph is:
         `-- gentoo-en-us  (adds locale)
             `-- gentoo-syslog  (adds syslog-ng and associates)
                 |-- buildbot  (adds a Buildbot master and slave)
+                |-- nginx  (adds Nginx)
                 |-- postgresql  (adds PostgreSQL)
                 |-- redis  (adds Redis)
                 |-- stunnel  (adds stunnel)
index ae6d3a3cf01fa95c8a97489b3b4125cf4f9b69dd..938d9c822d92544aa336b7fad5457cf9108c9776 100755 (executable)
--- a/build.sh
+++ b/build.sh
@@ -44,6 +44,7 @@ REPOS="${REPOS:-
        gentoo-java
        buildbot
        elasticsearch
+       nginx
        postgresql
        redis
        stunnel
diff --git a/nginx/Dockerfile.template b/nginx/Dockerfile.template
new file mode 100644 (file)
index 0000000..bdae994
--- /dev/null
@@ -0,0 +1,41 @@
+# 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 echo 'NGINX_MODULES_HTTP="access auth_basic autoindex charset fastcgi gzip gzip_static limit_req map proxy rewrite scgi ssi stub_status"' >> /etc/portage/make.conf
+RUN echo 'NGINX_MODULES_MAIL=""' >> /etc/portage/make.conf
+RUN emerge -v www-servers/nginx
+RUN eselect news read new
+RUN rc-update add nginx default
+
+RUN sed -i 's/listen 127.0.0.1;/listen 80 default_server;/' /etc/nginx/nginx.conf
+RUN mkdir /var/www/localhost/htdocs
+
+# Container networking happens automatically
+RUN sed -i 's/need net$/use net/' /etc/init.d/*
+
+CMD rc default && tail -F /var/log/messages
+EXPOSE 80
diff --git a/nginx/README.md b/nginx/README.md
new file mode 100644 (file)
index 0000000..05355cc
--- /dev/null
@@ -0,0 +1,13 @@
+Run this [Nginx][] image with:
+
+    $ docker run -d -name nginx-0 -v /var/www/nginx-0/htdocs:/var/www/localhost/htdocs -p 80:80 wking/nginx
+
+[volume-mounting][volume-mount] your content under the container's
+`/var/www/localhost/htdocs`.  You can also mount volumes from other
+containers and serve their data, although you may neet to tweak the
+config to serve from an alternative location.  Adjusting this image to
+serve from a configurable `$HTTP_ROOT` wouldn't be too difficult
+either.
+
+[Nginx]: http://nginx.org/
+[volume-mount]: http://docs.docker.io/en/latest/use/working_with_volumes/