diff --git a/atom/Dockerfile b/atom/Dockerfile new file mode 100644 index 0000000..cdad6c3 --- /dev/null +++ b/atom/Dockerfile @@ -0,0 +1,53 @@ +# VERSION: 0.1 +# DESCRIPTION: Create the atom editor in a container +# AUTHOR: Jessica Frazelle +# COMMENTS: +# This file describes how to build the atom editor +# in a container with all dependencies installed. +# Note: atom is not a node-webkit app, +# found this out a little too late into this example +# it uses atom-shell(https://github.com/atom/atom-shell) +# Tested on Debian Jessie. +# USAGE: +# # Download atom Dockerfile +# wget http://raw.githubusercontent.com/jfrazelle/dockerfiles/master/atom/Dockerfile +# +# # Build atom image +# docker build -t atom . +# +# docker run -v /tmp/.X11-unix:/tmp/.X11-unix \ +# -e DISPLAY=unix$DISPLAY atom +# + +DOCKER-VERSION 1.3 + +# Base docker image +FROM debian:jessie +MAINTAINER Jessica Frazelle + +# Install dependencies +RUN apt-get update && apt-get install -y \ + build-essential \ + ca-certificates \ + curl \ + git \ + libasound2 \ + libgconf-2-4 \ + libgnome-keyring-dev \ + libgtk2.0-0 \ + libnss3 \ + libxtst6 \ + --no-install-recommends + +# install node +RUN curl -sL https://deb.nodesource.com/setup | bash - +RUN apt-get install -y nodejs + +# clone atom +RUN git clone https://github.com/atom/atom /src +WORKDIR /src +RUN git fetch && git checkout $(git describe --tags `git rev-list --tags --max-count=1`) +RUN script/build && script/grunt install + +# Autorun atom +CMD /usr/local/bin/atom --foreground --log-file /var/log/atom.log && tail -f /var/log/atom.log diff --git a/chromium/Dockerfile b/chromium/Dockerfile new file mode 100644 index 0000000..53e4019 --- /dev/null +++ b/chromium/Dockerfile @@ -0,0 +1,38 @@ +# VERSION: 0.1 +# DESCRIPTION: Create chromium container with its dependencies +# AUTHOR: Jessica Frazelle +# COMMENTS: +# This file describes how to build a Chromium container with all +# dependencies installed. It uses native X11 unix socket. +# Tested on Debian Jessie +# USAGE: +# # Download Chromium Dockerfile +# wget http://raw.githubusercontent.com/jfrazelle/dockerfiles/master/chromium/Dockerfile +# +# # Build chromium image +# docker build -t chromium . +# +# # Run stateful data-on-host chromium. For ephemeral, remove -v /data/chromium:/data +# docker run -v /data/chromium:/data -v /tmp/.X11-unix:/tmp/.X11-unix \ +# -e DISPLAY=unix$DISPLAY chromium + +# # To run stateful dockerized data containers +# docker run --volumes-from chromium-data -v /tmp/.X11-unix:/tmp/.X11-unix \ +# -e DISPLAY=unix$DISPLAY chromium + +DOCKER_VERSION 1.3 + +# Base docker image +FROM debian:jessie +MAINTAINER Jessica Frazelle + +# Install Chromium +RUN apt-get update && apt-get install -y \ + chromium \ + chromium-l10n \ + libcanberra-gtk-module \ + libexif-dev \ + --no-install-recommends + +# Autorun chromium +CMD ["/usr/bin/chromium", "--no-sandbox", "--user-data-dir=/data"] diff --git a/doctor/Dockerfile b/doctor/Dockerfile new file mode 100644 index 0000000..d2e4188 --- /dev/null +++ b/doctor/Dockerfile @@ -0,0 +1,30 @@ +# VERSION: 0.1 +# DESCRIPTION: Run text-based emacs doctor in a container +# AUTHOR: Jessica Frazelle +# COMMENTS: +# This file describes how to build doctor in a container with all +# dependencies installed. +# Tested on Debian Jessie +# USAGE: +# # Download doctor Dockerfile +# wget http://raw.githubusercontent.com/jfrazelle/dockerfiles/master/doctor/Dockerfile +# +# # Build doctor image +# docker build -t doctor . +# +# docker run -it doctor +# + +DOCKER-VERSION 1.3 + +# Base docker image +FROM debian:jessie +MAINTAINER Jessica Frazelle + +# Install emacs +RUN apt-get update && apt-get install -y \ + emacs \ + --no-install-recommends + +# Autorun doctor +CMD ["/usr/bin/emacs", "-f", "doctor"] diff --git a/dunnet/Dockerfile b/dunnet/Dockerfile new file mode 100644 index 0000000..3e55121 --- /dev/null +++ b/dunnet/Dockerfile @@ -0,0 +1,30 @@ +# VERSION: 0.1 +# DESCRIPTION: Run text-based game dunnet in a container +# AUTHOR: Jessica Frazelle +# COMMENTS: +# This file describes how to build dunnet in a container with all +# dependencies installed. +# Tested on Debian Jessie +# USAGE: +# # Download dunnet Dockerfile +# wget http://raw.githubusercontent.com/jfrazelle/dockerfiles/master/dunnet/Dockerfile +# +# # Build dunnet image +# docker build -t dunnet . +# +# docker run -it dunnet +# + +DOCKER-VERSION 1.3 + +# Base docker image +FROM debian:jessie +MAINTAINER Jessica Frazelle + +# Install emacs +RUN apt-get update && apt-get install -y \ + emacs \ + --no-install-recommends + +# Autorun dunnet +CMD ["/usr/bin/emacs", "-batch", "-l", "dunnet"] diff --git a/gparted/Dockerfile b/gparted/Dockerfile new file mode 100644 index 0000000..13ebea5 --- /dev/null +++ b/gparted/Dockerfile @@ -0,0 +1,33 @@ +# VERSION: 0.1 +# DESCRIPTION: Create gparted container with its dependencies +# AUTHOR: Jessica Frazelle +# COMMENTS: +# This file describes how to build a gparted container with all +# dependencies installed. It uses native X11 unix socket. +# Tested on Debian Jessie +# USAGE: +# # Download gparted Dockerfile +# wget http://raw.githubusercontent.com/jfrazelle/dockerfiles/master/gparted/Dockerfile +# +# # Build gparted image +# docker build -t gparted . +# +# docker run -v /tmp/.X11-unix:/tmp/.X11-unix \ +# --device=/dev/sda:/dev/sda \ +# -e DISPLAY=unix$DISPLAY gparted +# + +DOCKER-VERSION 1.3 + +# Base docker image +FROM debian:jessie +MAINTAINER Jessica Frazelle + +# Install Gparted and its dependencies +RUN apt-get update && apt-get install -y \ + gparted \ + libcanberra-gtk-module \ + --no-install-recommends + +# Autorun gparted +CMD ["/usr/sbin/gparted"] diff --git a/ipython-notebook/Dockerfile b/ipython-notebook/Dockerfile new file mode 100644 index 0000000..13d3191 --- /dev/null +++ b/ipython-notebook/Dockerfile @@ -0,0 +1,33 @@ +FROM python:2.7.8 +MAINTAINER Jessica Frazelle + +RUN pip install -U numpy + +# install linear algebra dependencies +RUN apt-get update && apt-get install -y \ + gfortran \ + libopenblas-dev \ + liblapack-dev \ + libzmq-dev \ + --no-install-recommends +RUN pip install -U scipy + +RUN pip install -U matplotlib +RUN pip install -U pandas +RUN pip install -U patsy +RUN pip install -U statsmodels +RUN pip install -U scikit-learn +RUN pip install -U ggplot +RUN pip install -U pyzmq +RUN pip install -U jinja2 +RUN pip install -U tornado +RUN pip install -U ipython + +EXPOSE 8888 + +ADD notebook.sh / +RUN chmod u+x /notebook.sh && mkdir -p /root/notebooks + +WORKDIR /root/notebooks + +CMD ["/notebook.sh"] diff --git a/ipython-notebook/notebook.sh b/ipython-notebook/notebook.sh new file mode 100644 index 0000000..2c96b84 --- /dev/null +++ b/ipython-notebook/notebook.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +# Strict mode +IFS=$'\n\t' + +if [[ -z "$PEM_FILE" ]]; then + PEM_FILE=/key.pem +fi + +# Create a self signed certificate for the user if one doesn't exist +if [[ ! -f $PEM_FILE ]]; then + openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout $PEM_FILE -out $PEM_FILE \ + -subj "/C=XX/ST=XX/L=XX/O=dockergenerated/CN=dockergenerated" +fi + +# Create the hash to pass to the IPython notebook, but don't export it so it doesn't appear +# as an environment variable within IPython kernels themselves +HASH=$(python -c "from IPython.lib import passwd; print passwd('${PASSWORD}')") +unset PASSWORD + +ipython notebook --pylab=inline --ip=* --no-browser --port 8888 --certfile=$PEM_FILE --NotebookApp.password="$HASH" diff --git a/ssr/Dockerfile b/ssr/Dockerfile new file mode 100644 index 0000000..ca1bac6 --- /dev/null +++ b/ssr/Dockerfile @@ -0,0 +1,81 @@ +# VERSION: 0.1 +# DESCRIPTION: Create SimpleScreenRecorder in a container +# AUTHOR: Jessica Frazelle +# COMMENTS: +# This file describes how to build SimpleScreenRecoder +# in a container with all dependencies installed. +# Tested on Debian Jessie. +# USAGE: +# # Download ssr Dockerfile +# wget http://raw.githubusercontent.com/jfrazelle/dockerfiles/master/ssr/Dockerfile +# +# # Build ssr image +# docker build -t ssr . +# +# docker run -v /tmp/.X11-unix:/tmp/.X11-unix \ +# -e DISPLAY=unix$DISPLAY ssr +# + +DOCKER-VERSION 1.3 + +# Base docker image +FROM debian:jessie +MAINTAINER Jessica Frazelle + +# Install dependencies +RUN dpkg --add-architecture i386 && apt-get update && apt-get install -y \ + build-essential \ + ca-certificates \ + git \ + pkg-config \ + qt4-qmake \ + libqt4-dev \ + libavformat-dev \ + libavcodec-dev \ + libavutil-dev \ + libswscale-dev \ + libasound2-dev \ + libpulse-dev \ + libjack-jackd2-dev \ + libgl1-mesa-dev \ + libglu1-mesa-dev \ + libx11-dev \ + libxfixes-dev \ + libxext-dev \ + libxi-dev \ + g++-multilib \ + libx11-6 \ + libxext6 \ + libxfixes3 \ + libxfixes3:i386 \ + libglu1-mesa:i386 \ + sudo \ + --no-install-recommends + +# make adjustments +RUN cd /usr/lib/i386-linux-gnu && \ + ln -s libGL.so.1 libGL.so && \ + ln -s libGLU.so.1 libGLU.so && \ + ln -s libX11.so.6 libX11.so && \ + ln -s libXext.so.6 libXext.so && \ + ln -s libXfixes.so.3 libXfixes.so && \ + ldconfig + +# add user +#RUN adduser --system --home=/src --shell=/bin/sh --no-create-home \ + # --group ssr + +# clone source +RUN git clone https://github.com/MaartenBaert/ssr.git /src + +# install +#RUN echo "ssr ALL = NOPASSWD: /src/simple-build-and-install" >> /etc/sudoers +RUN sed -i".bak" '10,13d' /src/simple-build-and-install +RUN sed -i".bak" '13,14d' /src/postinstall +RUN cd /src && \ + #chown -R ssr /src && \ + #sudo -u ssr + /src/simple-build-and-install + +# Autorun ssr +CMD ["/usr/bin/simplescreenrecorder"] diff --git a/tetris/Dockerfile b/tetris/Dockerfile new file mode 100644 index 0000000..aae0766 --- /dev/null +++ b/tetris/Dockerfile @@ -0,0 +1,30 @@ +# VERSION: 0.1 +# DESCRIPTION: Run text-based emacs tetris in a container +# AUTHOR: Jessica Frazelle +# COMMENTS: +# This file describes how to build tetris in a container with all +# dependencies installed. +# Tested on Debian Jessie +# USAGE: +# # Download tetris Dockerfile +# wget http://raw.githubusercontent.com/jfrazelle/dockerfiles/master/tetris/Dockerfile +# +# # Build tetris image +# docker build -t tetris . +# +# docker run -it tetris +# + +DOCKER-VERSION 1.3 + +# Base docker image +FROM debian:jessie +MAINTAINER Jessica Frazelle + +# Install emacs +RUN apt-get update && apt-get install -y \ + emacs \ + --no-install-recommends + +# Autorun tetris +CMD ["/usr/bin/emacs", "-f", "tetris"] diff --git a/transmission/Dockerfile b/transmission/Dockerfile new file mode 100644 index 0000000..8218dc4 --- /dev/null +++ b/transmission/Dockerfile @@ -0,0 +1,35 @@ +# VERSION: 0.1 +# DESCRIPTION: Create transmission container with its dependencies +# AUTHOR: Jessica Frazelle +# COMMENTS: +# This file describes how to build a transmission container with all +# dependencies installed. It uses native X11 unix socket. +# Tested on Debian Jessie +# USAGE: +# # Download transmission Dockerfile +# wget http://raw.githubusercontent.com/jfrazelle/dockerfiles/master/transmission/Dockerfile +# +# # Build transmission image +# docker build -t transmission . +# +# docker run -v /tmp/.X11-unix:/tmp/.X11-unix \ +# -v /home/jessie/Torrents:/Torrents \ +# -e DISPLAY=unix$DISPLAY transmission +# + +DOCKER-VERSION 1.3 + +# Base docker image +FROM debian:jessie +MAINTAINER Jessica Frazelle + +# Install transmission and its dependencies +RUN apt-get update && apt-get install -y \ + transmission-cli \ + transmission-common \ + transmission-daemon \ + transmission-gtk \ + --no-install-recommends + +# Autorun transmission +CMD ["/usr/bin/transmission-gtk"]