Using the `DOCKER_LIBERVIA_REV` environment variable, backend (and related repos) revision can now be specified. By default (variable empty or not set), the current `tip` version is used, and `dev` is used for tagging. If the variable is set, the revision will be used and used for tagging the image.
53 lines
2.7 KiB
Docker
53 lines
2.7 KiB
Docker
FROM debian:bullseye-slim
|
|
|
|
LABEL maintainer="Goffi <tmp_dockerfiles@goffi.org>"
|
|
|
|
ARG REVISION
|
|
ARG DEBIAN_FRONTEND=noninteractive
|
|
|
|
RUN echo "Building image for Libervia ${REVISION:-dev}" && \
|
|
apt-get update && apt-get upgrade -y && \
|
|
apt-get install -y --no-install-recommends locales python3-dev python3-venv python3-wheel mercurial libxml2-dev libxslt-dev libcairo2-dev libjpeg-dev libgirepository1.0-dev libdbus-1-dev libdbus-glib-1-dev dbus-x11 cmake && \
|
|
\
|
|
# will be used to put many Libervia specific data
|
|
mkdir -p /usr/share/libervia/certificates && \
|
|
addgroup tls-cert --gid 9999 && \
|
|
chown :tls-cert /usr/share/libervia/certificates && \
|
|
chmod 2770 /usr/share/libervia/certificates && \
|
|
# it's better to have a dedicated user
|
|
useradd -m libervia && adduser libervia tls-cert && \
|
|
# we'll put all source there to have an easy mount point
|
|
mkdir /src && chown libervia:libervia /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
|
|
ENV DOCKER_LIBERVIA_REV=${REVISION:-dev}
|
|
|
|
COPY --chown=root:root session.conf /usr/share/dbus-1/session.conf
|
|
|
|
WORKDIR /home/libervia
|
|
USER libervia
|
|
|
|
RUN python3 -m venv libervia_env && libervia_env/bin/pip install -U pip wheel && cd /src && \
|
|
# We install thoses packages in editable mode, so we can replace them easily with volumes.
|
|
# We need to move *.egg-info (generated by pip) out of src dirs, otherwise mounting
|
|
# local repos without it them cause troubles
|
|
hg clone https://repos.goffi.org/urwid-satext && ~/libervia_env/bin/pip install -e urwid-satext && \
|
|
mv urwid-satext/urwid_satext.egg-info ~/libervia_env/lib/python3.*/site-packages && \
|
|
hg clone https://repos.goffi.org/sat_tmp -u "${REVISION:-tip}" && ~/libervia_env/bin/pip install -e sat_tmp && \
|
|
mv sat_tmp/sat_tmp.egg-info ~/libervia_env/lib/python3.*/site-packages && \
|
|
hg clone https://repos.goffi.org/libervia-templates && ~/libervia_env/bin/pip install -e libervia-templates && \
|
|
mv libervia-templates/libervia_templates.egg-info ~/libervia_env/lib/python3.*/site-packages && \
|
|
hg clone https://repos.goffi.org/libervia-media && \
|
|
hg clone https://repos.goffi.org/libervia-backend -u "${REVISION:-tip}" && ~/libervia_env/bin/pip install -e 'libervia-backend[SVG]' && \
|
|
mv libervia-backend/libervia_backend.egg-info ~/libervia_env/lib/python3.*/site-packages && \
|
|
mkdir -p /home/libervia/.local/share/libervia
|
|
|
|
ENV PATH=/home/libervia/libervia_env/bin:$PATH
|
|
|
|
COPY --chown=root:root libervia.conf /etc/_libervia.conf
|
|
COPY --chown=libervia:libervia scripts/entrypoint.sh /home/libervia/
|
|
|
|
ENTRYPOINT ["/home/libervia/entrypoint.sh"]
|