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.
71 lines
2.5 KiB
Docker
71 lines
2.5 KiB
Docker
ARG REVISION=dev
|
|
FROM libervia/backend:${REVISION}
|
|
|
|
LABEL maintainer="Goffi <tmp_dockerfiles@goffi.org>"
|
|
|
|
USER root
|
|
|
|
ARG DEBIAN_FRONTEND=noninteractive
|
|
|
|
RUN mkdir -m 777 /reports && \
|
|
apt-get install -y --no-install-recommends \
|
|
# firefox is needed to test Libervia via selenium
|
|
firefox-esr \
|
|
# VNC/X11 server for visual mode + window manager
|
|
# using openbox as it allows to resize easily when doing manual debugging/tests
|
|
# and it adapts correctly when doing driver.set_window_size
|
|
tigervnc-standalone-server openbox \
|
|
# useful for remote debugging
|
|
telnet net-tools \
|
|
# needed to make Firefox trust system certificates
|
|
# cf. https://askubuntu.com/a/1036637
|
|
p11-kit && \
|
|
ln -fs /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so /usr/lib/firefox-esr/libnssckbi.so
|
|
|
|
# we install pre-generated certificates so we can do tests with valid TLS
|
|
COPY --chown=root:root certificates/minica.pem /usr/local/share/ca-certificates/minica.crt
|
|
COPY --chown=root:tls-cert certificates/server1.test/cert.pem /usr/share/libervia/certificates/server1.test.pem
|
|
COPY --chown=root:tls-cert certificates/server1.test/key.pem /usr/share/libervia/certificates/server1.test-key.pem
|
|
RUN update-ca-certificates
|
|
|
|
COPY --chown=root:root libervia.conf /etc/libervia.conf
|
|
COPY --chown=libervia:libervia scripts/entrypoint.sh /home/libervia/entrypoint_e2e.sh
|
|
|
|
RUN \
|
|
# we install webdriver (needed to control Firefox from Selenium)
|
|
# note: this is not absolutely necessary as long as we use helium because it includes
|
|
# is own webdriver
|
|
python -c 'from urllib.request import urlretrieve;\
|
|
urlretrieve(\
|
|
"https://github.com/mozilla/geckodriver/releases/download/v0.28.0"\
|
|
"/geckodriver-v0.28.0-linux64.tar.gz", "/usr/local/bin/geckodriver.tar.gz")' && \
|
|
cd /usr/local/bin && tar zxf geckodriver.tar.gz && rm -f geckodriver.tar.gz
|
|
|
|
WORKDIR /home/libervia
|
|
USER libervia
|
|
|
|
RUN \
|
|
# pytest and its plugins
|
|
pip install pytest pytest-timeout pytest-dependency \
|
|
# needed to test libervia-cli
|
|
sh \
|
|
# needed to test libervia
|
|
helium \
|
|
# needed to check sent emails
|
|
aiosmtpd \
|
|
# useful for debugging
|
|
pudb
|
|
|
|
RUN ./entrypoint.sh \
|
|
# we create the file sharing component which will autoconnect when backend is started
|
|
li profile create file_sharing -j files.server1.test -p "" --xmpp-password test_e2e -C file_sharing -A && \
|
|
libervia-backend stop
|
|
|
|
ENV LIBERVIA_TEST_REPORT_DIR=/reports
|
|
ENV DISPLAY=:0
|
|
USER root
|
|
RUN apt-get install -y openbox
|
|
USER libervia
|
|
EXPOSE 5900
|
|
|
|
ENTRYPOINT ["/home/libervia/entrypoint_e2e.sh"]
|