diff docker/sat_pubsub/Dockerfile @ 105:b69056368901

docker: images optimisation: - reduced the number of layers by grouping many instructions - moved stuff which don't change a lot at the beginning, and hg/apt at the end - scripts are not now in scripts/ subdirectories - prosody.cfg.lua is added using ADD instead of getting it online - .hg/dirstate is copied in base (backend) and libervia, so mercurial revision is known - removed lot of useless WORKDIR instruction, they are replaced by "cd" inside RUN instructions - cleaning (apt-clean, rm) is done on the same instruction as the one than generate the data, to avoid useless data in layers
author Goffi <goffi@goffi.org>
date Sun, 28 Feb 2016 02:01:20 +0100
parents 8dd32aa49614
children d0a5db5b9bdf
line wrap: on
line diff
--- a/docker/sat_pubsub/Dockerfile	Sat Feb 27 00:45:58 2016 +0100
+++ b/docker/sat_pubsub/Dockerfile	Sun Feb 28 02:01:20 2016 +0100
@@ -10,42 +10,39 @@
 
 MAINTAINER Goffi <goffi@goffi.org>
 
+############################
+# AUTOMATIC CONFIGURATION  #
+############################
+
+
+COPY scripts/sat_pubsub /usr/local/bin/
+RUN chown root:root /usr/local/bin/sat_pubsub && \
+chmod 0555 /usr/local/bin/sat_pubsub && \
+
 ########
 # 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", "--pidfile", "/tmp/sat_pubsub.pid", "sat_pubsub", "--rhost", "prosody",\
- "--jid", "pubsub.%s" % domain, "--secret", secret)\n\
-' > /usr/local/bin/sat_pubsub && chmod 0555 /usr/local/bin/sat_pubsub
-
-WORKDIR /usr/share
-
-RUN hg clone https://repos.goffi.org/sat_pubsub && chown -R sat:sat sat_pubsub
+apt-get install -y --no-install-recommends postgresql && \
+apt-get install -y --no-install-recommends python-psycopg2 && \
+apt-get clean && \
+cd /usr/share && \
+hg clone https://repos.goffi.org/sat_pubsub && chown -R sat:sat sat_pubsub && \
 
 ############
 # DATABASE #
 ############
 
-WORKDIR sat_pubsub/db
+cd 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
+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 #