view docker/pubsub/Dockerfile @ 3452:bb0225aaf4e6

plugin XEP-0346: "Form Discovery and Publishing" implementation: this implementation replaces the former non standard node schema, and works in a similar way (the schema is put in a separated node instead of a special field, thus it will now work with most/all PubSub services, and not only SàT PubSub). The implementation has been done in a way that nothing should be changed in frontends (bridge methods names and arguments stay the same). The nodes are modified, but if values are taken from backend, it's automatically adapted.
author Goffi <goffi@goffi.org>
date Fri, 11 Dec 2020 17:57:00 +0100
parents d2298ed6de7f
children 73e04040d577
line wrap: on
line source

FROM debian:buster-slim

LABEL maintainer="Goffi <tmp_dockerfiles@goffi.org>"

ARG DEBIAN_FRONTEND=noninteractive

RUN \

RUN apt-get update && apt-get upgrade -y && \
    apt-get install -y --no-install-recommends locales python3-dev python3-venv python3-wheel mercurial libpq-dev gcc gnupg && \
    # we install postgresql repository to have latest version
    echo "deb http://apt.postgresql.org/pub/repos/apt buster-pgdg main" > /etc/apt/sources.list.d/pgdg.list && \
    python3 -c 'from urllib.request import urlopen; print(urlopen("https://www.postgresql.org/media/keys/ACCC4CF8.asc").read().decode())' | apt-key add - && \
    # now we can install the client
    apt-get install -y --no-install-recommends postgresql-client && \
    # it's better to have a dedicated user
    useradd -m sat && \
    mkdir /src && chown sat:sat /src && \
    # 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

WORKDIR /home/sat
COPY entrypoint.sh /home/sat
RUN chown sat:sat /home/sat/entrypoint.sh && chmod 0555 /home/sat/entrypoint.sh

USER sat
RUN python3 -m venv sat_env && sat_env/bin/pip install wheel && cd /src && \
    # we install thoses packages in editable mode, so we can replace them easily with volumes
    hg clone https://repos.goffi.org/sat_tmp && ~/sat_env/bin/pip install -e sat_tmp && \
    mv sat_tmp/sat_tmp.egg-info ~/sat_env/lib/python3.*/site-packages && \
    hg clone https://repos.goffi.org/sat_pubsub && ~/sat_env/bin/pip install -e sat_pubsub && \
    mv sat_pubsub/sat_pubsub.egg-info ~/sat_env/lib/python3.*/site-packages

ENTRYPOINT ["/home/sat/entrypoint.sh"]