Mercurial > sat_docs
view docker/base/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 | 5d2eb2f61dc8 |
children |
line wrap: on
line source
############################################################### # # # Salut à Toi/base # # This Dockerfile build a « Salut à Toi » base image # # Salut à Toi is a multi-frontends multi-purposes XMPP client # # # ############################################################### FROM debian:jessie MAINTAINER Goffi <goffi@goffi.org> ######## # BASE # ######## ENV DEBIAN_FRONTEND noninteractive ## Helping scripts ## # Following scripts make the configuration as automatic and easy as possible COPY scripts/set_account_domain scripts/sat scripts/add_host scripts/dbus_wrap scripts/prosodyctl /usr/local/bin/ RUN chown root:root /usr/local/bin/set_account_domain && \ chmod 0555 /usr/local/bin/set_account_domain && \ chown root:root /usr/local/bin/sat && \ chmod 0500 /usr/local/bin/sat && \ chown root:root /usr/local/bin/add_host && \ chmod 0555 /usr/local/bin/add_host && \ chown root:root /usr/local/bin/prosodyctl && \ chmod 0555 /usr/local/bin/prosodyctl && \ chown root:root /usr/local/bin/dbus_wrap && \ chmod 0555 /usr/local/bin/dbus_wrap && \ # it's better to have a dedicated user useradd -m sat && \ # will be used to put many SàT specific data mkdir -p /usr/share/sat && \ mkdir /usr/share/sat/certificates && \ addgroup tls-cert --gid 9999 && \ chown :tls-cert /usr/share/sat/certificates && \ chmod 2770 /usr/share/sat/certificates && \ adduser sat tls-cert RUN apt-get update && apt-get upgrade -y && apt-get install -y --no-install-recommends locales dbus-x11 python python-gobject-2 python-dbus python-lxml python-mutagen python-pil python-crypto python-feed python-potr python-xdg python-xe python-zope.interface python-gi python-urwid python-markdown python-html2text mercurial python-pip python-openssl python-service-identity gcc python-dev && \ # we install Twisted from pip as Jessie version is too old pip install twisted wokkel pyOpenSSL && \ # we remove stuff only needed to build Twisted # and clean what we can apt-get purge -y gcc python-dev && \ apt-get autoremove -y && apt-get clean && \ # dokuwiki module is needed for the blog importer pip install dokuwiki && \ # we need a TCP socket for D-Bus sed -i "s&<listen>unix:tmpdir=/tmp</listen>&\0\n <listen>tcp:host=localhost,bind=*,port=55555,family=ipv4</listen>\n <auth>ANONYMOUS</auth>\n <allow_anonymous/>&" /etc/dbus-1/session.conf && \ # we need UTF-8 locale sed -i "s/# en_US.UTF-8/en_US.UTF-8/" /etc/locale.gen && locale-gen ENV LC_ALL en_US.UTF-8 ################ # URWID SÀTEXT # ################ RUN cd /tmp && \ hg clone https://repos.goffi.org/urwid-satext && cd urwid-satext && \ python setup.py install --prefix /usr --install-lib /usr/lib/python2.7/dist-packages && \ cd /tmp && rm -rf urwid-satext && \ ##################### # CORE INSTALLATION # ##################### hg clone https://repos.goffi.org/sat && cd sat && \ python setup.py install --prefix /usr --install-lib /usr/lib/python2.7/dist-packages && \ # we save repository data so SàT can get repository version # TODO: should be done in setup.py in the future python -c 'from sat.tools import utils;utils.getRepositoryData("/tmp/sat", is_path=True, save_dir_path="/usr/lib/python2.7/dist-packages/sat")' && \ cd /tmp && rm -rf sat && \ ###################### # SàT CONFIGURATION # ###################### # we want .pid files in /tmp so they are removed if container are deleted echo '[DEFAULT]\npid_dir=/tmp\n\n\ # we auto-create libervia account if it doesn't exists in Libervia container # so we remove it from reserved_list in plugin account [plugin account]\nreserved_list=' >> /etc/sat.conf && \ # we create a sat.conf in sat user's XDG directory # else it would be created by set_account_domain with root only permissions mkdir -p /home/sat/.config/sat && touch /home/sat/.config/sat/sat.conf && \ chown -R sat:sat /home/sat/.config && chmod 0700 /home/sat/.config/sat && \ chmod 0600 /home/sat/.config/sat/sat.conf ########## # LAUNCH # ########## WORKDIR /home/sat ENTRYPOINT ["/bin/bash"]