From 5a6cbf01dac1f8517510cac2072a3eaf20688619 Mon Sep 17 00:00:00 2001 From: Noah Levitt Date: Tue, 15 Sep 2015 23:02:37 +0000 Subject: [PATCH] Dockerfile for brozzler worker --- docker/Dockerfile | 33 +++++++++++++++++++++++++++++++++ docker/vlc-screencast.sh | 2 ++ docker/vncserver.sh | 6 ++++++ 3 files changed, 41 insertions(+) create mode 100644 docker/Dockerfile create mode 100755 docker/vlc-screencast.sh create mode 100755 docker/vncserver.sh diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..2b11cbf --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,33 @@ +FROM phusion/baseimage +MAINTAINER Noah Levitt + +ENV LANG=C.UTF-8 + +RUN apt-get update && apt-get --auto-remove -y dist-upgrade \ + && apt-get -y install vnc4server \ + && apt-get -y install chromium-browser \ + && apt-get -y install xfonts-base fonts-arphic-bkai00mp fonts-arphic-bsmi00lp fonts-arphic-gbsn00lp fonts-arphic-gkai00mp fonts-arphic-ukai fonts-farsiweb fonts-nafees fonts-sil-abyssinica fonts-sil-ezra fonts-sil-padauk fonts-unfonts-extra fonts-unfonts-core ttf-indic-fonts fonts-thai-tlwg fonts-lklug-sinhala \ + && apt-get -y install python3-pip \ + && apt-get -y install git \ + && apt-get -y install vlc + +RUN adduser --disabled-password --gecos="Charlie Brozzler" brozzler + +WORKDIR /tmp +RUN setuser brozzler git clone https://github.com/nlevitt/brozzler.git && cd brozzler && pip3 install -r requirements.txt + +RUN mkdir -vp /etc/service/vncserver +ADD vncserver.sh /etc/service/vncserver/run + +RUN mkdir /etc/service/vlc-screencast +ADD vlc-screencast.sh /etc/service/vlc-screencast/run + +EXPOSE 5901 +EXPOSE 8080 + +# ENTRYPOINT ["/sbin/my_init", "--", "setuser", "brozzler", "brozzler-worker"] + +# +# docker run --rm --publish=8080:8080 internetarchive/brozzler-worker /sbin/my_init -- setuser brozzler brozzler-worker --rethinkdb-servers=foo,bar --max-browsers=5 +# + diff --git a/docker/vlc-screencast.sh b/docker/vlc-screencast.sh new file mode 100755 index 0000000..a0608d5 --- /dev/null +++ b/docker/vlc-screencast.sh @@ -0,0 +1,2 @@ +#!/bin/sh +DISPLAY=:1 exec setuser brozzler cvlc screen:// :screen-fps=3 :screen-caching=100 ':sout=#transcode{vcodec=theo,vb=800,scale=0.5,acodec=none}:http{mux=ogg,dst=:8080/screen}' :sout-keep >> /tmp/vlc-screencast.out 2>&1 diff --git a/docker/vncserver.sh b/docker/vncserver.sh new file mode 100755 index 0000000..88dd296 --- /dev/null +++ b/docker/vncserver.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +# https://github.com/phusion/baseimage-docker#adding-additional-daemons +# /usr/bin/vncserver backgrounds the Xvnc4 process, so we run Xvnc4 directly + +exec setuser brozzler Xvnc4 :1 -desktop brozzler@`hostname`:1 -auth /tmp/Xauthority.brozzler -geometry 1600x1000 -depth 24 -rfbwait 0 -nolisten tcp -rfbport 5901 -pn -fp /usr/X11R6/lib/X11/fonts/Type1/,/usr/X11R6/lib/X11/fonts/Speedo/,/usr/X11R6/lib/X11/fonts/misc/,/usr/X11R6/lib/X11/fonts/75dpi/,/usr/X11R6/lib/X11/fonts/100dpi/,/usr/share/fonts/X11/misc/,/usr/share/fonts/X11/Type1/,/usr/share/fonts/X11/75dpi/,/usr/share/fonts/X11/100dpi/ -co /etc/X11/rgb >> /tmp/`hostname`:1.log 2>&1