diff docker/backend-dev-e2e/Dockerfile @ 3497:73e04040d577

docker: update following name changes: `backend_e2e` now print properly backend logs
author Goffi <goffi@goffi.org>
date Fri, 16 Apr 2021 18:32:16 +0200
parents docker/backend_e2e/Dockerfile@b166a59b1724
children 0ffaa231138c
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docker/backend-dev-e2e/Dockerfile	Fri Apr 16 18:32:16 2021 +0200
@@ -0,0 +1,70 @@
+FROM libervia/backend:dev
+
+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 jp
+    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
+    jp 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"]