view docker/sat_pubsub/Dockerfile @ 116:d0a5db5b9bdf

docker: fixed bad stopping: - use exec when it was missing, so the TERM signal is properly catched, and containers can be stopped instead of being killed after 10s - for a unknown reason, exec and su don't handle correctly "$@" with Docker in base.scripts/sat. It's working as expected when launched from withing a running container, but not when launched with "docker run", so a workaround is used with trap and wait
author Goffi <goffi@goffi.org>
date Fri, 04 Mar 2016 23:31:26 +0100
parents b69056368901
children d493fe1cf095
line wrap: on
line source

###############################################################
#                                                             #
#                   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>

############################
# AUTOMATIC CONFIGURATION  #
############################


COPY scripts/sat_pubsub scripts/launch_postgres_and_pubsub.sh /usr/local/bin/
RUN chown root:root /usr/local/bin/sat_pubsub && \
chmod 0555 /usr/local/bin/sat_pubsub && \
chmod 0555 /usr/local/bin/launch_postgres_and_pubsub.sh && \

########
# BASE #
########

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 #
############

cd sat_pubsub/db && \

# To simplify installation, we integrate our own PostgreSQL
# future alternate version may use an external PostgreSQL container

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 ["launch_postgres_and_pubsub.sh"]