diff docker/sat_pubsub/Dockerfile @ 21:0e78c8a4626e

Added Dockerfiles to create Docker images for easy installation + scripts to manages them. see README for details.
author Goffi <goffi@goffi.org>
date Sun, 19 Oct 2014 15:14:40 +0200
parents
children 686a8c982c3f
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docker/sat_pubsub/Dockerfile	Sun Oct 19 15:14:40 2014 +0200
@@ -0,0 +1,55 @@
+###############################################################
+#                                                             #
+#                   Salut à Toi/sat_pubsub                    #
+#     This Dockerfile build a SàT Pubsub service for SàT      #
+# Salut à Toi is a multi-frontends multi-purposes XMPP client #
+#                                                             #
+###############################################################
+
+FROM salutatoi/base:latest
+
+MAINTAINER Goffi <goffi@goffi.org>
+
+########
+# BASE #
+########
+
+RUN apt-get install -y --no-install-recommends postgresql
+RUN apt-get install -y --no-install-recommends python-psycopg2
+RUN apt-get clean
+
+# This script launch SàT PubSub with domain and secret gotten from prosody container
+# it make the configuration more easy
+RUN echo '#!/usr/bin/env python2\n\
+import os, xmlrpclib\n\
+os.chdir("/usr/share/sat_pubsub")\n\
+proxy = xmlrpclib.ServerProxy("http://prosody:9999/")\n\
+domain = proxy.getenv("DOMAIN")\n\
+secret = proxy.getenv("SAT_PUBSUB_SECRET")\n\
+os.execlp("twistd", "twistd", "-n", "sat_pubsub", "--rhost", "prosody",\
+ "--jid", "sat-pubsub.%s" % domain, "--secret", secret)\n\
+' > /usr/local/bin/sat_pubsub && chmod 0555 /usr/local/bin/sat_pubsub
+
+WORKDIR /usr/share
+
+RUN hg clone http://repos.goffi.org/sat_pubsub && chown -R sat:sat sat_pubsub
+
+############
+# DATABASE #
+############
+
+WORKDIR sat_pubsub/db
+
+# To simplify installation, we integrate our own PostgreSQL
+# future alternate version may use an external PostgreSQL container
+
+USER root
+
+RUN service postgresql start; su -c "createuser -d -w sat" postgres; su -c "createdb pubsub" postgres; su -c "psql pubsub < pubsub.sql" sat; service postgresql stop
+
+##########
+# LAUNCH #
+##########
+
+# we need to launch PostgreSQL, so we launch as root then switch to sat user
+ENTRYPOINT ["/bin/sh","-c", "service postgresql start && su -c sat_pubsub sat"]