elasticsearch: Add Elasticsearch container instructions
authorW. Trevor King <wking@tremily.us>
Fri, 13 Dec 2013 04:30:44 +0000 (20:30 -0800)
committerW. Trevor King <wking@tremily.us>
Sun, 29 Dec 2013 17:44:34 +0000 (09:44 -0800)
README.md
build.sh
elasticsearch/Dockerfile.template [new file with mode: 0644]
elasticsearch/README.md [new file with mode: 0644]

index e63b9f339111dec74edb26e3248972fae7f70ce2..20ed700a8530a19f4b2d352e6f16ea0e3ffaddd9 100644 (file)
--- a/README.md
+++ b/README.md
@@ -23,6 +23,7 @@ The dependency graph is:
                 |-- postgresql  (adds PostgreSQL)
                 |-- redis  (adds Redis)
                 `-- gentoo-java  (adds IcedTea)
+                    `-- elasticsearch  (adds Elasticsearch)
 
 Run:
 
index 7b50475fc4541c21e34ac573a30c7f53fadfa11b..aa533a4d45c22348d9c53d7bbdf7404754e71bd3 100755 (executable)
--- a/build.sh
+++ b/build.sh
@@ -40,6 +40,7 @@ REPOS="
        gentoo-syslog
        gentoo-java
        buildbot
+       elasticsearch
        postgresql
        redis
        "
diff --git a/elasticsearch/Dockerfile.template b/elasticsearch/Dockerfile.template
new file mode 100644 (file)
index 0000000..fa71ff0
--- /dev/null
@@ -0,0 +1,38 @@
+# 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-java:TAG
+MAINTAINER A. U. Thor <author@example.com>
+#VOLUME ["PORTAGE:/usr/portage:ro", "PORTAGE/distfiles:/usr/portage/distfiles:rw"]
+RUN echo 'app-misc/elasticsearch ~amd64' >> /etc/portage/package.accept_keywords
+RUN emerge -v app-misc/elasticsearch
+RUN eselect news read new
+RUN rc-update add elasticsearch default
+RUN for x in /etc/elasticsearch/*; do cp "${x}" "${x%.sample}"; done
+
+# Container networking happens automatically
+RUN sed -i 's/need net$/use net/' /etc/init.d/*
+
+CMD rc default && tail -F /var/log/messages
+EXPOSE 9200
diff --git a/elasticsearch/README.md b/elasticsearch/README.md
new file mode 100644 (file)
index 0000000..99a63f3
--- /dev/null
@@ -0,0 +1,31 @@
+Run this [Elasticsearch][] image with:
+
+    $ docker run -d -name elasticsearch-0 wking/elasticsearch
+
+Then [link][linking] to it from your client container:
+
+    $ docker run -link elasticsearch-0:elasticsearch your-client
+
+For example, we can use the Gentoo client:
+
+    $ docker run -link elasticsearch-0:elasticsearch -i -t wking/gentoo /bin/bash
+    d30608cbc8a1 / # HOST_PORT="${ELASTICSEARCH_PORT#[a-z]*://}"
+    d30608cbc8a1 / # HOST="${HOST_PORT%:[0-9]*}"
+    d30608cbc8a1 / # PORT="${HOST_PORT#[0-9.]*:}"
+    d30608cbc8a1 / # wget --quiet -O - "http://${HOST}:${PORT}/"
+    {
+      "ok" : true,
+      "status" : 200,
+      "name" : "Asbestos Man",
+      "version" : {
+        "number" : "0.90.6",
+        "build_hash" : "e2a24efdde0cb7cc1b2071ffbbd1fd874a6d8d6b",
+        "build_timestamp" : "2013-11-04T13:44:16Z",
+        "build_snapshot" : false,
+        "lucene_version" : "4.5.1"
+      },
+      "tagline" : "You Know, for Search"
+    }
+
+[Elasticsearch]: http://www.elasticsearch.org/
+[linking]: http://docs.docker.io/en/latest/use/port_redirection/#linking-a-container