Mercurial > sat_docs
view docker/libervia/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 | bcba1966e6db |
children | 8b228fd053bc |
line wrap: on
line source
#################################################################### # # # Salut à Toi/Libervia # # This Dockerfile build Libervia, the web frontend for Salut à Toi # # Salut à Toi is a multi-frontends multi-purposes XMPP client # # # #################################################################### FROM salutatoi/media:latest MAINTAINER Goffi <goffi@goffi.org> ##################### # FIRST LAUNCH TEST # ##################### COPY scripts/libervia_cont_launch /usr/bin/ RUN chown root:root /usr/bin/libervia_cont_launch && \ chmod 0555 /usr/bin/libervia_cont_launch && \ ######### # D-Bus # ######### cp /usr/local/bin/dbus_wrap /usr/local/bin/libervia_cont_launch && \ ################# # CONFIGURATION # ################# # we want to use certificates in /usr/share/sat/certificates echo "\n[libervia]\n\ tls_private_key = /usr/share/sat/certificates/libervia.key\n\ tls_certificate = /usr/share/sat/certificates/libervia.crt\n\ connection_type = both\n\ redirect_to_https = 0" >> /etc/sat.conf ################ # dependencies # ################ RUN pip install txJSON-RPC && \ apt-get install -y --no-install-recommends python-jinja2 && apt-get clean && \ ########### # PYJAMAS # ########### cd /tmp && \ # as the situation with pyjamas is complicated, we get the archive from our own ftp python -c 'import urllib2,tarfile,cStringIO;tar=tarfile.open(fileobj=cStringIO.StringIO(urllib2.urlopen("https://ftp.goffi.org/pyjamas/pyjamas.tar.bz2").read()));tar.extractall()' && \ cd pyjamas && \ python bootstrap.py && \ ln -s /tmp/pyjamas/bin/pyjsbuild /usr/local/bin/pyjsbuild && \ ############ # LIBERVIA # ############ hg clone https://repos.goffi.org/libervia && \ cd libervia && \ python setup.py install && \ # as for SàT backend, we copy .hg/dirstate so # Libervia can get repository version # TODO: should be done in setup.py in the future cp --parents .hg/dirstate /usr/local/lib/python2.7/dist-packages/libervia && \ # some cleaning before finishing the layer cd /tmp && rm -rf libervia pyjamas /usr/local/bin/pyjsbuild ######### # Ports # ######### # HTTP and HTTPS EXPOSE 8080 8443 ########## # LAUNCH # ########## USER sat ENTRYPOINT ["libervia_cont_launch", "fg"]