view docker/libervia/Dockerfile @ 138:274af514a5cf

flatpak: reworked packages + made a building script: a new `build_manifest.py` script can now be used to generate flatpak manifests for every frontend of SàT. The manifest can be used both for development versions and stable ones. Templates files (in the form `_tmp_<app-id>.json`) are used to set building instructions. A common runtime specific to SàT has been abandoned following a discussion on the official mailing list. A small wrapper is now used to launch backend automatically if it's not found. Desktop and app metadata have been added for Cagou. Jp and Primitivus don't have appdata and desktop files yet.
author Goffi <goffi@goffi.org>
date Sat, 22 Jun 2019 15:59:07 +0200
parents 8b228fd053bc
children
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 #
############

cd /tmp && hg clone https://repos.goffi.org/libervia && \

cd libervia && \

python setup.py install && \

# as for SàT backend, we save repos data
# so Libervia can get repository version
# TODO: should be done in setup.py in the future
python -c 'from sat.tools import utils;utils.getRepositoryData("/tmp/libervia", is_path=True, save_dir_path="/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"]