initial creation

pull/3/merge
Sameer Naik 10 years ago
commit 2e816aad5a

@ -0,0 +1,22 @@
FROM sameersbn/debian:jessie.20140918
RUN wget -q -O - "https://dl-ssl.google.com/linux/linux_signing_key.pub" | sudo apt-key add - \
&& echo "deb http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google-chrome.list \
&& apt-get update \
&& apt-get install -y xz-utils file locales dbus-x11 pulseaudio \
fonts-dejavu fonts-liberation hicolor-icon-theme google-chrome-stable \
libcanberra-gtk3-0 libcanberra-gtk-module libcanberra-gtk3-module \
libasound2 libgtk2.0-0 libdbus-glib-1-2 libxt6 libexif12 \
libgl1-mesa-glx libgl1-mesa-dri \
&& update-locale LANG=C.UTF-8 LC_MESSAGES=POSIX \
&& mkdir -p /usr/lib/tor-browser \
&& wget -nv https://www.torproject.org/dist/torbrowser/3.6.5/tor-browser-linux64-3.6.5_en-US.tar.xz -O - \
| tar -Jvxf - --strip=1 -C /usr/lib/tor-browser \
&& ln -sf /usr/lib/tor-browser/start-tor-browser /usr/bin/tor-browser \
&& rm -rf /var/lib/apt/lists/* # 20140919
ADD scripts /scripts
ADD start /start
RUN chmod 755 /start
ENTRYPOINT ["/start"]

@ -0,0 +1,29 @@
all: help
help:
@echo ""
@echo "-- Help Menu"
@echo ""
@echo " 1. make build - build the browser-bundle image"
@echo " 1. make install - install launch wrappers"
@echo " 2. make google-chrome - launch google-chrome"
@echo " 2. make tor-browser - launch tor-browser"
@echo " 2. make bash - bash login"
@echo ""
build:
@docker build --tag=${USER}/browser-bundle .
install:
@docker run -it --rm \
--volume=/usr/local/bin:/target \
${USER}/browser-bundle:latest install
google-chrome tor-browser bash:
@docker run -it --rm \
--env="USER_UID=$(shell id -u)" \
--env="USER_GID=$(shell id -g)" \
--env="DISPLAY=${DISPLAY}" \
--volume=/tmp/.X11-unix:/tmp/.X11-unix \
--volume=/run/user/$(shell id -u)/pulse:/run/pulse \
${USER}/browser-bundle:latest $@

@ -0,0 +1,21 @@
#!/bin/bash
PATH=/usr/sbin:/usr/bin:/sbin:/bin
prog=$(basename $0)
exec=$(which $prog)
if [ -n "${exec}" ]; then
exec ${exec} $@
else
USER_UID=$(id -u)
USER_GID=$(id -g)
docker run -it --rm \
--env="USER_UID=${USER_UID}" \
--env="USER_GID=${USER_GID}" \
--env="DISPLAY=${DISPLAY}" \
--volume=/tmp/.X11-unix:/tmp/.X11-unix \
--volume=/run/user/${USER_UID}/pulse:/run/pulse \
sameersbn/browser-bundle:latest $(basename $0) $@
fi

51
start

@ -0,0 +1,51 @@
#!/bin/bash
set -e
case "$1" in
install)
echo "Installing browser-bundle..."
install -m 0755 /scripts/browser-bundle /target/
echo "Installing google-chrome..."
ln -sf browser-bundle /target/google-chrome
echo "Installing google-chrome-stable..."
ln -sf browser-bundle /target/google-chrome-stable
echo "Installing tor-browser..."
ln -sf browser-bundle /target/tor-browser
;;
uninstall)
echo "Uninstalling browser-bundle..."
rm -rf /target/browser-bundle
echo "Uninstalling google-chrome..."
rm -rf /target/google-chrome
echo "Uninstalling google-chrome-stable..."
rm -rf /target/google-chrome-stable
echo "Uninstalling tor-browser..."
rm -rf /target/tor-browser
;;
tor-browser|google-chrome|google-chrome-stable)
# uid and gid of host user
USER_UID=${USER_UID:-1000}
USER_GID=${USER_GID:-1000}
# create user group
groupadd -g ${USER_GID} anonymous
# create user with uid and gid matching that of the host user
adduser --disabled-login --uid ${USER_UID} --gid ${USER_GID} \
--gecos 'Anonymous' anonymous
extra_opts=
case "$1" in
google-chrome|google-chrome-stable)
extra_opts="--no-sandbox"
;;
esac
# launch application as anonymous
cd /home/anonymous
exec sudo -u anonymous -H PULSE_SERVER=/run/pulse/native $@ ${extra_opts}
;;
*)
exec $@
;;
esac
Loading…
Cancel
Save