From 2d41bc591336d292b4b2d4f3a0f702b9f790af18 Mon Sep 17 00:00:00 2001 From: hekra Date: Wed, 25 Jan 2017 08:26:15 -0800 Subject: [PATCH 1/2] Dockerfile for QtWebDriver --- docker/Dockerfile | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 docker/Dockerfile diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 00000000..0eea90cf --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,34 @@ +# Dockerfile to build a Webdriver for QT5 +# Check port mapping when running the container +# e.g: docker run -p port:port image + +FROM alexzaporozhets/ubuntu-qt5.4.2 +MAINTAINER Hugues Ekra +LABEL vendor="Cisco Systems" +LABEL license="LGPLv2.1" +LABEL version="1.3.3" + +# Qt root dir, adjusted according to the base Qt5 image +ENV QTDIR "/opt/Qt5.4.2/5.4/gcc_64" +ENV QT_PLUGIN_PATH $QTDIR/plugins + +# Build +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections \ + && sudo apt-get update \ + && sudo apt-get install -y g++ gyp xvfb x11-apps \ + && git clone https://github.com/cisco-open-source/qtwebdriver \ + && cd qtwebdriver \ + && cp ./qt5_sample_config.gypi ./wd.gypi \ + && sed -i "s@\/home\/hekra01\/qt@$QTDIR@g" wd.gypi \ + && ./build.sh + +# hardcoded path, wait for fix https://github.com/docker/docker/issues/29110 +# ENV WD_PATH "$dirname(find "$PWD" -name WebDriver -executable)" +ENV WD_PATH /opt/qtwebdriver/out/dist/desktop/release/bin +ENV PATH $PATH:$WD_PATH + +# Run +ENTRYPOINT ["/bin/sh", "-c", "xvfb-run -a WebDriver --verbose"] +#CMD ["--verbose"] + +# http://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker/ From 199c2aa6952540c2e04f683517c04f5077ff3f00 Mon Sep 17 00:00:00 2001 From: hekra Date: Thu, 26 Jan 2017 19:21:20 -0800 Subject: [PATCH 2/2] Use Qt offscreen --- docker/Dockerfile | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 0eea90cf..e0cda1b2 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,34 +1,37 @@ # Dockerfile to build a Webdriver for QT5 # Check port mapping when running the container -# e.g: docker run -p port:port image +# e.g: +# $ docker run -ti --rm -p 9531:9517 latest:latest --verbose FROM alexzaporozhets/ubuntu-qt5.4.2 +#FROM icsinc/qt5.5.0-x64 +#FROM ubuntu:trusty MAINTAINER Hugues Ekra LABEL vendor="Cisco Systems" LABEL license="LGPLv2.1" LABEL version="1.3.3" -# Qt root dir, adjusted according to the base Qt5 image +#ENV QTDIR /opt/qt55 ENV QTDIR "/opt/Qt5.4.2/5.4/gcc_64" ENV QT_PLUGIN_PATH $QTDIR/plugins +ENV QT_QPA_PLATFORM offscreen +ENV QT_QPA_FONTDIR /opt/Qt5.4.2/5.4/Src/qtbase/lib/fonts +WORKDIR /opt # Build RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections \ - && sudo apt-get update \ - && sudo apt-get install -y g++ gyp xvfb x11-apps \ - && git clone https://github.com/cisco-open-source/qtwebdriver \ + && sudo apt-get update && sudo apt-get install -y \ + git g++ gyp xvfb libicu-dev libegl1-mesa-dev libgles2-mesa-dev \ + && git clone --verbose --progress https://github.com/cisco-open-source/qtwebdriver \ && cd qtwebdriver \ && cp ./qt5_sample_config.gypi ./wd.gypi \ && sed -i "s@\/home\/hekra01\/qt@$QTDIR@g" wd.gypi \ && ./build.sh # hardcoded path, wait for fix https://github.com/docker/docker/issues/29110 -# ENV WD_PATH "$dirname(find "$PWD" -name WebDriver -executable)" ENV WD_PATH /opt/qtwebdriver/out/dist/desktop/release/bin ENV PATH $PATH:$WD_PATH # Run -ENTRYPOINT ["/bin/sh", "-c", "xvfb-run -a WebDriver --verbose"] -#CMD ["--verbose"] - -# http://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker/ +#ENTRYPOINT ["/bin/sh", "-c", "xvfb-run -a WebDriver"] +ENTRYPOINT ["WebDriver"]