From eb7cda8728437da66e66981f01da6708e35ddcdb Mon Sep 17 00:00:00 2001 From: Mark Peter Fejes Date: Tue, 23 Jan 2018 09:14:02 +0100 Subject: [PATCH] Initial commit --- Dockerfile | 28 ++++++++++++++++++++++++++++ README.md | 2 ++ xvfb-chromium | 15 +++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 Dockerfile create mode 100644 README.md create mode 100644 xvfb-chromium diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..ccdd97e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,28 @@ +FROM node:latest + +RUN apt-get update && \ + apt-get install -y sudo default-jre xvfb chromium + +ADD xvfb-chromium /root/xvfb-chromium + +RUN chmod +x /root/xvfb-chromium + +RUN mv /root/xvfb-chromium /usr/bin/xvfb-chromium + +RUN ln -s /usr/bin/xvfb-chromium /usr/bin/google-chrome && \ + ln -s /usr/bin/xvfb-chromium /usr/bin/chromium-browser + +RUN chmod +x /usr/bin/google-chrome && \ + chmod +x /usr/bin/chromium-browser + +# Startup and shutdown chrome to set up an initial user-data-dir +RUN google-chrome --user-data-dir=/root/chrome-user-data-dir & \ + (sleep 5 && sudo kill $(pgrep -o chromium) && sleep 2) + +ENV CHROME_BIN /usr/bin/google-chrome + +RUN node -p process.versions + +RUN npm -v + +ENTRYPOINT ["npm"] diff --git a/README.md b/README.md new file mode 100644 index 0000000..596b75e --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# Angular-testing +A simple docker container that can be used to unit and e2e test Angular applications. You can find this on docker hub as `markpeterfejes/angular-testing` \ No newline at end of file diff --git a/xvfb-chromium b/xvfb-chromium new file mode 100644 index 0000000..ece56d4 --- /dev/null +++ b/xvfb-chromium @@ -0,0 +1,15 @@ +#!/bin/bash + +_kill_procs() { + kill -TERM $chromium + wait $chromium +} + +# Setup a trap to catch SIGTERM and relay it to child processes +trap _kill_procs SIGTERM + +# Start Chrome inside xvfb +xvfb-run -a -s "-screen 0 1920x1080x24 -nolisten tcp" chromium --no-sandbox $@ & +chromium=$! + +wait $chromium