Mercurial > sat_docs
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"]