├── .gitmodules ├── IDEs ├── AndroidStudio │ ├── Dockerfile │ └── launch.sh ├── CodeBlocks │ ├── Dockerfile │ └── launch.sh ├── EclipseJava │ ├── Dockerfile │ └── launch.sh ├── Monodevelop │ ├── Dockerfile │ └── launch.sh └── QtCreator │ ├── Dockerfile │ └── launch.sh ├── LICENSE ├── README.md ├── games ├── MinecraftServer │ ├── Dockerfile │ ├── README.md │ ├── docker-entrypoint.sh │ ├── list │ └── list.js └── Technic │ ├── Dockerfile │ └── launch.sh └── software ├── autotools └── Dockerfile ├── debian+mono-dev └── Dockerfile ├── debian-dev └── Dockerfile ├── electron ├── Dockerfile ├── make │ └── Dockerfile └── package.json ├── email └── Dockerfile ├── gradle └── Dockerfile ├── jekyll └── Dockerfile ├── make └── Dockerfile ├── mono+make └── Dockerfile ├── ngx_http_proxy_connect_module └── Dockerfile ├── nsis └── Dockerfile ├── remote-ssh-forward └── Dockerfile └── typescript └── Dockerfile /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "software/mono"] 2 | path = software/mono 3 | url = https://github.com/zachdeibert/mono-docker.git 4 | -------------------------------------------------------------------------------- /IDEs/AndroidStudio/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM zachdeibert/gradle-docker-image 2 | 3 | LABEL org.opencontainers.image.authors="zachdeibert@gmail.com" 4 | 5 | ENTRYPOINT ["/launch.sh"] 6 | CMD [":0"] 7 | 8 | RUN apt-get update && apt-get install -y libcanberra-gtk-module unzip lib32z1 lib32ncurses5 lib32stdc++6 && rm -rf /var/lib/apt/lists/* 9 | ADD https://dl.google.com/dl/android/studio/ide-zips/2.1.2.0/android-studio-ide-143.2915827-linux.zip /tmp/android-studio-ide-143.2915827-linux.zip 10 | RUN unzip /tmp/android-studio-ide-143.2915827-linux.zip -d /opt && rm -f /tmp/android-studio-ide-143.2915827-linux.zip 11 | ADD launch.sh /launch.sh 12 | -------------------------------------------------------------------------------- /IDEs/AndroidStudio/launch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | executable=/opt/android-studio/bin/studio.sh 4 | 5 | if [ $# -lt 1 ] || [ $# -gt 2 ]; then 6 | echo "Usage: launch.sh [DISPLAY value] " 7 | exit 1 8 | fi 9 | 10 | if [ $# -eq 2 ]; then 11 | grep "^$2:" /etc/passwd > /dev/null 12 | if [ $? -ne 0 ]; then 13 | useradd "$2" 14 | fi 15 | if [ ! -d "/home/$2" ]; then 16 | mkdir -p "/home/$2" 17 | fi 18 | chown -R "$2:$2" "/home/$2" 19 | DISPLAY="$1" su "$2" -c "$executable" 20 | else 21 | DISPLAY="$1" $executable 22 | fi 23 | -------------------------------------------------------------------------------- /IDEs/CodeBlocks/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM zachdeibert/autotools-docker 2 | 3 | LABEL org.opencontainers.image.authors="zachdeibert@gmail.com" 4 | 5 | ENTRYPOINT ["/launch.sh"] 6 | CMD [":0"] 7 | 8 | RUN apt-get update && apt-get install -y apt-transport-https && rm -rf /var/lib/apt/lists/* 9 | RUN echo "deb https://apt.jenslody.de/stable jessie main" > /etc/apt/sources.list.d/codeblocks.list && echo "deb-src https://apt.jenslody.de/stable jessie main" >> /etc/apt/sources.list.d/codeblocks.list 10 | RUN apt-get update && apt-get install -y --force-yes jens-lody-debian-keyring && rm -rf /var/lib/apt/lists/* 11 | RUN apt-get update && apt-get install -y codeblocks && rm -rf /var/lib/apt/lists/* 12 | ADD launch.sh /launch.sh 13 | -------------------------------------------------------------------------------- /IDEs/CodeBlocks/launch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | executable=codeblocks 4 | 5 | if [ $# -lt 1 ] || [ $# -gt 2 ]; then 6 | echo "Usage: launch.sh [DISPLAY value] " 7 | exit 1 8 | fi 9 | 10 | if [ $# -eq 2 ]; then 11 | grep "^$2:" /etc/passwd > /dev/null 12 | if [ $? -ne 0 ]; then 13 | useradd "$2" 14 | fi 15 | if [ ! -d "/home/$2" ]; then 16 | mkdir -p "/home/$2" 17 | fi 18 | chown -R "$2:$2" "/home/$2" 19 | DISPLAY="$1" su "$2" -c "$executable" 20 | else 21 | DISPLAY="$1" $executable 22 | fi 23 | -------------------------------------------------------------------------------- /IDEs/EclipseJava/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM zachdeibert/gradle-docker-image 2 | 3 | LABEL org.opencontainers.image.authors="zachdeibert@gmail.com" 4 | 5 | ENTRYPOINT ["/launch.sh"] 6 | CMD [":0"] 7 | 8 | RUN apt-get update && apt-get install -y libcanberra-gtk-module && rm -rf /var/lib/apt/lists/* 9 | ADD http://eclipse.mirror.rafal.ca/technology/epp/downloads/release/neon/R/eclipse-java-neon-R-linux-gtk-x86_64.tar.gz /tmp/eclipse-java-neon-R-linux-gtk-x86_64.tar.gz 10 | RUN tar -xzf /tmp/eclipse-java-neon-R-linux-gtk-x86_64.tar.gz -C /opt && rm -f /tmp/eclipse-java-neon-R-linux-gtk-x86_64.tar.gz 11 | ADD launch.sh /launch.sh 12 | -------------------------------------------------------------------------------- /IDEs/EclipseJava/launch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | executable=/opt/eclipse/eclipse 4 | 5 | if [ $# -lt 1 ] || [ $# -gt 2 ]; then 6 | echo "Usage: launch.sh [DISPLAY value] " 7 | exit 1 8 | fi 9 | 10 | if [ $# -eq 2 ]; then 11 | grep "^$2:" /etc/passwd > /dev/null 12 | if [ $? -ne 0 ]; then 13 | useradd "$2" 14 | fi 15 | if [ ! -d "/home/$2" ]; then 16 | mkdir -p "/home/$2" 17 | fi 18 | chown -R "$2:$2" "/home/$2" 19 | DISPLAY="$1" su "$2" -c "$executable" 20 | else 21 | DISPLAY="$1" $executable 22 | fi 23 | -------------------------------------------------------------------------------- /IDEs/Monodevelop/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM mono 2 | 3 | LABEL org.opencontainers.image.authors="zachdeibert@gmail.com" 4 | 5 | ENTRYPOINT ["/launch.sh"] 6 | CMD [":0"] 7 | 8 | RUN apt-get update && apt-get install -y monodevelop monodevelop-nunit gsettings-desktop-schemas && rm -rf /var/lib/apt/lists/* 9 | ADD launch.sh /launch.sh 10 | -------------------------------------------------------------------------------- /IDEs/Monodevelop/launch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | executable=monodevelop 4 | 5 | if [ $# -lt 1 ] || [ $# -gt 2 ]; then 6 | echo "Usage: launch.sh [DISPLAY value] " 7 | exit 1 8 | fi 9 | 10 | if [ $# -eq 2 ]; then 11 | grep "^$2:" /etc/passwd > /dev/null 12 | if [ $? -ne 0 ]; then 13 | useradd "$2" 14 | fi 15 | if [ ! -d "/home/$2" ]; then 16 | mkdir -p "/home/$2" 17 | fi 18 | chown -R "$2:$2" "/home/$2" 19 | DISPLAY="$1" su "$2" -c "$executable" 20 | else 21 | DISPLAY="$1" $executable 22 | fi 23 | -------------------------------------------------------------------------------- /IDEs/QtCreator/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM zachdeibert/autotools-docker 2 | 3 | LABEL org.opencontainers.image.authors="zachdeibert@gmail.com" 4 | 5 | ENTRYPOINT ["/launch.sh"] 6 | CMD [":0"] 7 | 8 | RUN apt-get update && apt-get install -y qt-sdk qtcreator nvidia-304-dev && rm -rf /var/lib/apt/lists/* 9 | ADD launch.sh /launch.sh 10 | -------------------------------------------------------------------------------- /IDEs/QtCreator/launch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | executable=qtcreator 4 | 5 | if [ $# -lt 1 ] || [ $# -gt 2 ]; then 6 | echo "Usage: launch.sh [DISPLAY value] " 7 | exit 1 8 | fi 9 | 10 | if [ $# -eq 2 ]; then 11 | grep "^$2:" /etc/passwd > /dev/null 12 | if [ $? -ne 0 ]; then 13 | useradd "$2" 14 | fi 15 | if [ ! -d "/home/$2" ]; then 16 | mkdir -p "/home/$2" 17 | fi 18 | chown -R "$2:$2" "/home/$2" 19 | DISPLAY="$1" su "$2" -c "$executable" 20 | else 21 | DISPLAY="$1" $executable 22 | fi 23 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Zach Deibert 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Docker Images 2 | This repository contains various `Dockerfile`s that will build many useful images. 3 | All of these images are also available on [DockerHub](https://hub.docker.com/r/zachdeibert/). 4 | 5 | ## Running GUI Containers 6 | The GUI containers (in `IDEs/` and `games/`) will run on a local X11 server or a remote X11 server. 7 | To run a GUI container on a local X11 server, use the following: 8 | ```bash 9 | docker run -v /tmp:/tmp zachdeibert/container-name $DISPLAY $USER 10 | ``` 11 | To run a GUI container on a remote X11 server, use the following: 12 | ```bash 13 | docker run zachdeibert/container-name $DISPLAY $USER 14 | ``` 15 | The filesystem is completely different inside the container than outside the container. 16 | Therefore, when you recreate the container, all of the files will be deleted. 17 | To change this, you can use the `-v` option with the folder you want to be the same inside and outside. 18 | For example, the following command will make `/path/to/folder` the same inside and outside the container: 19 | ```bash 20 | docker run -v /tmp:/tmp -v /path/to/folder:/path/to/folder zachdeibert/container-name $DISPLAY $USER 21 | ``` 22 | 23 | ### With Nvidia Graphics Cards 24 | To run a GUI container with a Nvidia graphics card, additionally add the following flags before the container name: 25 | ``` 26 | --device /dev/nvidia0 --device /dev/nvidiactl 27 | ``` 28 | 29 | ## Repository Structure 30 | * `IDEs/` - These are IDEs that help with development (needs to run with GUI) 31 | * `IDEs/AndroidStudio/` - The [Android Studio](https://developer.android.com/studio/index.html) IDE 32 | * `IDEs/CodeBlocks/` - The ([Code::Blocks IDE](http://www.codeblocks.org/)) for C++ 33 | * `IDEs/EclipseJava/` - The [Eclipse IDE for Java Developers](http://www.eclipse.org/) 34 | * `IDEs/Monodevelop/` - The [Monodevelop IDE](http://www.monodevelop.com/) for C# development 35 | * `IDEs/QtCreator/` - The [QT Creator IDE](https://www.qt.io/ide/) for C++ 36 | * `games/` - These are games (needs to run with GUI and are slower due to an OpenGL problem) 37 | * `games/Technic/` - The [Technic Launcher](http://www.technicpack.net/) 38 | * `games/MinecraftServer/` - [Minecraft](https://minecraft.net) server in a container 39 | * `software/` - Other development software (CLI only) 40 | * `software/autotools/` - Contains all of the autotools programs (`autoconf`, `automake`, `libtool`, etc.) 41 | * `software/debian+mono-dev/` - Contains the tools needed to build mono programs and package Debian packages (`.deb`s) 42 | * `software/debian-dev/` - Contains the tools needed to build Debian packages (`.deb`s) 43 | * `software/electron/` - Contains the tools needed to build and package [Electron](http://electron.atom.io/) apps 44 | * `software/electron/make/` - Contains all of the tools from `software/electron/` and has Make 45 | * `software/gradle/` - Contains all of the tools needed to build Gradle projects 46 | * `software/jekyll/` - Contains the tools needed to build Jekyll sites and has Make 47 | * `software/make/` - Contains all of the tools needed for building Docker images with Make 48 | * `software/mono/` - A version of the [Library `mono`](https://hub.docker.com/_/mono/) image with an updated OS 49 | * `software/mono+make/` - Contains all of the tools needed for building Mono projects with Make 50 | * `software/ngx_http_proxy_connect_module` - Contains a version of Nginx with the [ngx_http_proxy_connect_module](https://github.com/chobits/ngx_http_proxy_connect_module) installed 51 | * `software/nsis/` - Contains the tools needed to build a NSIS installer 52 | * `software/typescript/` - Contains the typescript compiler 53 | 54 | ## [Need more software or other versions?](https://github.com/zachdeibert/docker-images/issues/new) 55 | -------------------------------------------------------------------------------- /games/MinecraftServer/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM openjdk:8-jre-alpine 2 | 3 | LABEL org.opencontainers.image.authors="zachdeibert@gmail.com" 4 | 5 | ENTRYPOINT [ "docker-entrypoint.sh" ] 6 | EXPOSE 25565 7 | VOLUME /opt/minecraft 8 | WORKDIR /opt/minecraft 9 | 10 | RUN apk add --no-cache curl 11 | 12 | COPY list /mc_list 13 | COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh 14 | -------------------------------------------------------------------------------- /games/MinecraftServer/README.md: -------------------------------------------------------------------------------- 1 | # Minecraft Server 2 | 3 | ## Running 4 | 5 | ```bash 6 | docker run -ite MC_VERSION=1.13 -p 25565:25565 zachdeibert/minecraft-server 7 | ``` 8 | 9 | ## Changing settings 10 | 11 | Any setting in the `server.properties` file can be changed by creating an environmental variable called `MC_` followed by the setting name in all upper-case with the underscores replaced by hyphens. 12 | For example, this sets a level seed: 13 | 14 | ```bash 15 | docker run -ite MC_VERSION=1.13 -e MC_LEVEL_SEED=docker -p 25565:25565 zachdeibert/minecraft-server 16 | ``` 17 | 18 | ## Bukkit 19 | 20 | ```bash 21 | docker run -ite MC_VERSION=1.13 -e MC_FLAVOR=bukkit -p 25565:25565 zachdeibert/minecraft-server 22 | ``` 23 | 24 | ## Spigot 25 | 26 | ```bash 27 | docker run -ite MC_VERSION=1.13 -e MC_FLAVOR=spigot -p 25565:25565 zachdeibert/minecraft-server 28 | ``` 29 | -------------------------------------------------------------------------------- /games/MinecraftServer/docker-entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | server_fname="" 5 | server_url="" 6 | 7 | case "$MC_FLAVOR" in 8 | "spigot") 9 | server_fname="spigot-$MC_VERSION.jar" 10 | server_url="https://cdn.getbukkit.org/spigot/spigot-$MC_VERSION.jar" 11 | ;; 12 | "bukkit") 13 | server_fname="craftbukkit-$MC_VERSION.jar" 14 | server_url="https://cdn.getbukkit.org/craftbukkit/craftbukkit-$MC_VERSION.jar" 15 | ;; 16 | "paper") 17 | server_fname="paper-$MC_VERSION.jar" 18 | if [ "x$PAPER_VERSION" = "x" ]; then 19 | server_url="https://papermc.io/api/v1/paper/$MC_VERSION/latest/download" 20 | else 21 | server_url="https://papermc.io/api/v1/paper/$MC_VERSION/$PAPER_VERSION/download" 22 | fi 23 | ;; 24 | "") 25 | server_fname="minecraft_server.$MC_VERSION.jar" 26 | server_url="$(grep "^$MC_VERSION " /mc_list | cut -f 2 -d " ")" 27 | ;; 28 | *) 29 | echo "Unable to determine Minecraft flavor." >&2 30 | exit 1 31 | esac 32 | 33 | if [ ! -f "$server_fname" ]; then 34 | if [ "x$server_url" = "x" ]; then 35 | echo "Unable to determine Minecraft version." >&2 36 | exit 1 37 | else 38 | curl "$server_url" -o "$server_fname" 39 | fi 40 | fi 41 | 42 | if [ ! -f eula.txt ]; then 43 | echo "eula=true" > eula.txt 44 | fi 45 | 46 | if [ ! -f server.properties ]; then 47 | touch server.properties 48 | fi 49 | 50 | (env; echo "$@") | grep "^MC_" | grep -v "^MC_VERSION=" | grep -v "^MC_FLAVOR=" | sed -e "s|^MC_||" | while read row; do 51 | key="$(echo "$row" | cut -f 1 -d "=" | tr "A-Z" "a-z" | tr _ -)" 52 | grep -v "^$key=" server.properties > server.properties~ || true 53 | echo "$key=$(echo "$row" | cut -f 2 -d "=")" >> server.properties~ 54 | mv server.properties~ server.properties 55 | done 56 | 57 | exec java -XX:+UnlockExperimentalVMOptions -XX:+UseContainerSupport -XX:MaxRAMPercentage=90.0 -XX:MinRAMPercentage=50.0 -XX:+UseParallelGC -jar "$server_fname" nogui 58 | -------------------------------------------------------------------------------- /games/MinecraftServer/list: -------------------------------------------------------------------------------- 1 | 1.13 https://launcher.mojang.com/mc/game/1.13/server/d0caafb8438ebd206f99930cfaecfa6c9a13dca0/server.jar 2 | 1.12.2 https://launcher.mojang.com/mc/game/1.12.2/server/886945bfb2b978778c3a0288fd7fab09d315b25f/server.jar 3 | 1.12.1 https://launcher.mojang.com/mc/game/1.12.1/server/561c7b2d54bae80cc06b05d950633a9ac95da816/server.jar 4 | 1.12 https://launcher.mojang.com/mc/game/1.12/server/8494e844e911ea0d63878f64da9dcc21f53a3463/server.jar 5 | 1.11.2 https://launcher.mojang.com/mc/game/1.11.2/server/f00c294a1576e03fddcac777c3cf4c7d404c4ba4/server.jar 6 | 1.11.1 https://launcher.mojang.com/mc/game/1.11.1/server/1f97bd101e508d7b52b3d6a7879223b000b5eba0/server.jar 7 | 1.11 https://launcher.mojang.com/mc/game/1.11/server/48820c84cb1ed502cb5b2fe23b8153d5e4fa61c0/server.jar 8 | 1.10.2 https://launcher.mojang.com/mc/game/1.10.2/server/3d501b23df53c548254f5e3f66492d178a48db63/server.jar 9 | 1.10.1 https://launcher.mojang.com/mc/game/1.10.1/server/cb4c6f9f51a845b09a8861cdbe0eea3ff6996dee/server.jar 10 | 1.10 https://launcher.mojang.com/mc/game/1.10/server/a96617ffdf5dabbb718ab11a9a68e50545fc5bee/server.jar 11 | 1.9.4 https://launcher.mojang.com/mc/game/1.9.4/server/edbb7b1758af33d365bf835eb9d13de005b1e274/server.jar 12 | 1.9.3 https://launcher.mojang.com/mc/game/1.9.3/server/8e897b6b6d784f745332644f4d104f7a6e737ccf/server.jar 13 | 1.9.2 https://launcher.mojang.com/mc/game/1.9.2/server/2b95cc7b136017e064c46d04a5825fe4cfa1be30/server.jar 14 | 1.9.1 https://launcher.mojang.com/mc/game/1.9.1/server/bf95d9118d9b4b827f524c878efd275125b56181/server.jar 15 | 1.9 https://launcher.mojang.com/mc/game/1.9/server/b4d449cf2918e0f3bd8aa18954b916a4d1880f0d/server.jar 16 | 1.8.9 https://launcher.mojang.com/mc/game/1.8.9/server/b58b2ceb36e01bcd8dbf49c8fb66c55a9f0676cd/server.jar 17 | 1.8.8 https://launcher.mojang.com/mc/game/1.8.8/server/5fafba3f58c40dc51b5c3ca72a98f62dfdae1db7/server.jar 18 | 1.8.7 https://launcher.mojang.com/mc/game/1.8.7/server/35c59e16d1f3b751cd20b76b9b8a19045de363a9/server.jar 19 | 1.8.6 https://launcher.mojang.com/mc/game/1.8.6/server/2bd44b53198f143fb278f8bec3a505dad0beacd2/server.jar 20 | 1.8.5 https://launcher.mojang.com/mc/game/1.8.5/server/ea6dd23658b167dbc0877015d1072cac21ab6eee/server.jar 21 | 1.8.4 https://launcher.mojang.com/mc/game/1.8.4/server/dd4b5eba1c79500390e0b0f45162fa70d38f8a3d/server.jar 22 | 1.8.3 https://launcher.mojang.com/mc/game/1.8.3/server/163ba351cb86f6390450bb2a67fafeb92b6c0f2f/server.jar 23 | 1.8.2 https://launcher.mojang.com/mc/game/1.8.2/server/a37bdd5210137354ed1bfe3dac0a5b77fe08fe2e/server.jar 24 | 1.8.1 https://launcher.mojang.com/mc/game/1.8.1/server/68bfb524888f7c0ab939025e07e5de08843dac0f/server.jar 25 | 1.8 https://launcher.mojang.com/mc/game/1.8/server/a028f00e678ee5c6aef0e29656dca091b5df11c7/server.jar 26 | 1.7.10 https://launcher.mojang.com/mc/game/1.7.10/server/952438ac4e01b4d115c5fc38f891710c4941df29/server.jar 27 | 1.7.9 https://launcher.mojang.com/mc/game/1.7.9/server/4cec86a928ec171fdc0c6b40de2de102f21601b5/server.jar 28 | 1.7.8 https://launcher.mojang.com/mc/game/1.7.8/server/c69ebfb84c2577661770371c4accdd5f87b8b21d/server.jar 29 | 1.7.7 https://launcher.mojang.com/mc/game/1.7.7/server/a6ffc1624da980986c6cc12a1ddc79ab1b025c62/server.jar 30 | 1.7.6 https://launcher.mojang.com/mc/game/1.7.6/server/41ea7757d4d7f74b95fc1ac20f919a8e521e910c/server.jar 31 | 1.7.5 https://launcher.mojang.com/mc/game/1.7.5/server/e1d557b2e31ea881404e41b05ec15c810415e060/server.jar 32 | 1.7.4 https://launcher.mojang.com/mc/game/1.7.4/server/61220311cef80aecc4cd8afecd5f18ca6b9461ff/server.jar 33 | 1.7.3 https://launcher.mojang.com/mc/game/1.7.3/server/707857a7bc7bf54fe60d557cca71004c34aa07bb/server.jar 34 | 1.7.2 https://launcher.mojang.com/mc/game/1.7.2/server/3716cac82982e7c2eb09f83028b555e9ea606002/server.jar 35 | 1.6.4 https://launcher.mojang.com/mc/game/1.6.4/server/050f93c1f3fe9e2052398f7bd6aca10c63d64a87/server.jar 36 | 1.6.2 https://launcher.mojang.com/mc/game/1.6.2/server/01b6ea555c6978e6713e2a2dfd7fe19b1449ca54/server.jar 37 | 1.6.1 https://launcher.mojang.com/mc/game/1.6.1/server/0252918a5f9d47e3c6eb1dfec02134d1374a89b4/server.jar 38 | 1.5.2 https://launcher.mojang.com/mc/game/1.5.2/server/f9ae3f651319151ce99a0bfad6b34fa16eb6775f/server.jar 39 | 1.5.1 https://launcher.mojang.com/mc/game/1.5.1/server/d07c71ee2767dabb79fb32dad8162e1b854d5324/server.jar 40 | 1.4.7 https://launcher.mojang.com/mc/game/1.4.7/server/2f0ec8efddd2f2c674c77be9ddb370b727dec676/server.jar 41 | 1.4.6 https://launcher.mojang.com/mc/game/1.4.6/server/a0aeb5709af5f2c3058c1cf0dc6b110a7a61278c/server.jar 42 | 1.4.5 https://launcher.mojang.com/mc/game/1.4.5/server/c12fd88a8233d2c517dbc8196ba2ae855f4d36ea/server.jar 43 | 1.4.4 https://launcher.mojang.com/mc/game/1.4.4/server/4215dcadb706508bf9d6d64209a0080b9cee9e71/server.jar 44 | 1.4.2 https://launcher.mojang.com/mc/game/1.4.2/server/5be700523a729bb78ef99206fb480a63dcd09825/server.jar 45 | 1.3.2 https://launcher.mojang.com/mc/game/1.3.2/server/3de2ae6c488135596e073a9589842800c9f53bfe/server.jar 46 | 1.3.1 https://launcher.mojang.com/mc/game/1.3.1/server/82563ce498bfc1fc8a2cb5bf236f7da86a390646/server.jar 47 | 1.2.5 https://launcher.mojang.com/mc/game/1.2.5/server/d8321edc9470e56b8ad5c67bbd16beba25843336/server.jar 48 | 1.2.4 https://launcher.mojang.com/mc/game/1.2.5/server/d8321edc9470e56b8ad5c67bbd16beba25843336/server.jar 49 | 1.2.3 http://assets.minecraft.net/1_2/minecraft_server.jar 50 | 1.2.2 http://assets.minecraft.net/1_2/minecraft_server.jar 51 | 1.2.1 http://assets.minecraft.net/1_2/minecraft_server.jar 52 | -------------------------------------------------------------------------------- /games/MinecraftServer/list.js: -------------------------------------------------------------------------------- 1 | // https://mcversions.net/ 2 | 3 | Array.from(document.querySelectorAll("#content > .container > .row > :first-child > ul > li")).map(e => e.querySelectorAll("a.server")).filter(e => e.length).map(e => e[0].download.replace(/minecraft_server-(.*).jar/, "$1") + " " + e[0].href).join("\n") 4 | -------------------------------------------------------------------------------- /games/Technic/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM java 2 | 3 | LABEL org.opencontainers.image.authors="zachdeibert@gmail.com" 4 | 5 | ENTRYPOINT ["/launch.sh"] 6 | CMD [":0"] 7 | 8 | ADD http://launcher.technicpack.net/launcher4/347/TechnicLauncher.jar /usr/local/bin/TechnicLauncher.jar 9 | RUN chmod 755 /usr/local/bin/TechnicLauncher.jar 10 | ADD launch.sh /launch.sh 11 | -------------------------------------------------------------------------------- /games/Technic/launch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | executable="java -jar /usr/local/bin/TechnicLauncher.jar" 4 | 5 | if [ $# -lt 1 ] || [ $# -gt 2 ]; then 6 | echo "Usage: launch.sh [DISPLAY value] " 7 | exit 1 8 | fi 9 | 10 | if [ $# -eq 2 ]; then 11 | grep "^$2:" /etc/passwd > /dev/null 12 | if [ $? -ne 0 ]; then 13 | useradd "$2" 14 | fi 15 | if [ ! -d "/home/$2" ]; then 16 | mkdir -p "/home/$2" 17 | fi 18 | chown -R "$2:$2" "/home/$2" 19 | DISPLAY="$1" su "$2" -c "$executable" 20 | else 21 | DISPLAY="$1" $executable 22 | fi 23 | 24 | while ps aux | grep -v grep | grep java > /dev/null; do 25 | sleep 10s 26 | done 27 | -------------------------------------------------------------------------------- /software/autotools/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:jessie 2 | 3 | LABEL org.opencontainers.image.authors="zachdeibert@gmail.com" 4 | 5 | RUN apt-get update && apt-get install -y build-essential autoconf automake libtool make gcc g++ && rm -rf /var/lib/apt/lists/* 6 | -------------------------------------------------------------------------------- /software/debian+mono-dev/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM zachdeibert/mono-docker:4.2.3.4 2 | 3 | LABEL org.opencontainers.image.authors="zachdeibert@gmail.com" 4 | 5 | RUN apt-get update && apt-get install -y devscripts && rm -rf /var/lib/apt/cache/* 6 | -------------------------------------------------------------------------------- /software/debian-dev/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:jessie 2 | 3 | LABEL org.opencontainers.image.authors="zachdeibert@gmail.com" 4 | 5 | RUN apt-get update && apt-get install -y devscripts unar && rm -rf /var/lib/apt/cache/* 6 | -------------------------------------------------------------------------------- /software/electron/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:13.12.0-slim 2 | 3 | LABEL org.opencontainers.image.authors="zachdeibert@gmail.com" 4 | 5 | RUN apt-get update && apt-get install -y wine zip && rm -rf /var/lib/apt/cache/* 6 | RUN npm install electron-packager electron -g --unsafe-perm=true --allow-root 7 | RUN mkdir -p /tmp/dummy_package && ln -s /usr/local/lib/node_modules/ /tmp/dummy_package/node_modules 8 | COPY package.json /tmp/dummy_package/package.json 9 | RUN cd /tmp/dummy_package && electron-packager . --all && cd / && rm -rf /tmp/dummy_package 10 | -------------------------------------------------------------------------------- /software/electron/make/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM zachdeibert/electron:8.2.0 2 | 3 | LABEL org.opencontainers.image.authors="zachdeibert@gmail.com" 4 | 5 | RUN apt-get update && apt-get install -y make && rm -rf /var/lib/apt/cache/* 6 | -------------------------------------------------------------------------------- /software/electron/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "dummy-package", 3 | "productName": "Dummy Package", 4 | "version": "1.0.0", 5 | "main": "main.js", 6 | "devDependencies": { 7 | "electron": "^8.2.0" 8 | } 9 | } 10 | 11 | -------------------------------------------------------------------------------- /software/email/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian 2 | 3 | LABEL org.opencontainers.image.authors="zachdeibert@gmail.com" 4 | 5 | RUN apt-get update && apt-get install -y sendemail libnet-ssleay-perl libio-socket-ssl-perl ca-certificates zip git && rm -rf /var/lib/apt/lists/* 6 | -------------------------------------------------------------------------------- /software/gradle/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM java 2 | LABEL org.opencontainers.image.authors="zachdeibert@gmail.com" 3 | ADD https://services.gradle.org/distributions/gradle-2.13-bin.zip /tmp/gradle-2.13-bin.zip 4 | RUN unzip /tmp/gradle-2.13-bin.zip -d /tmp && cp -R /tmp/gradle-2.13/* /usr/local/ && rm -Rf /tmp/gradle-2.13 /tmp/gradle-2.13-bin.zip 5 | -------------------------------------------------------------------------------- /software/jekyll/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM jekyll/jekyll:3.1.6 2 | 3 | LABEL org.opencontainers.image.authors="zachdeibert@gmail.com" 4 | 5 | RUN apk add --no-cache make 6 | RUN gem install jekyll-angular 7 | -------------------------------------------------------------------------------- /software/make/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM docker:1.11.1 2 | 3 | LABEL org.opencontainers.image.authors="zachdeibert@gmail.com" 4 | 5 | RUN apk add --no-cache make 6 | -------------------------------------------------------------------------------- /software/mono+make/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM zachdeibert/mono-docker:4.2.3.4 2 | 3 | LABEL org.opencontainers.image.authors="zachdeibert@gmail.com" 4 | 5 | RUN apt-get update && apt-get install -y make && rm -rf /var/lib/apt/cache/* 6 | -------------------------------------------------------------------------------- /software/ngx_http_proxy_connect_module/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:stretch-slim 2 | 3 | LABEL org.opencontainers.image.authors="zachdeibert@gmail.com" 4 | 5 | CMD [ "/usr/local/nginx/sbin/nginx", "-g", "daemon off;" ] 6 | EXPOSE 80 7 | STOPSIGNAL SIGTERM 8 | 9 | RUN apt update \ 10 | && apt install -y \ 11 | build-essential \ 12 | curl \ 13 | libpcre3-dev \ 14 | zlib1g-dev \ 15 | libssl-dev \ 16 | && rm -rf /var/lib/apt/lists/* \ 17 | && curl -L https://nginx.org/download/nginx-1.15.2.tar.gz | tar xz \ 18 | && curl -L https://github.com/chobits/ngx_http_proxy_connect_module/archive/master.tar.gz | tar xz \ 19 | && cd nginx-1.15.2 \ 20 | && patch -p1 < ../ngx_http_proxy_connect_module-master/patch/proxy_connect_rewrite_1015.patch \ 21 | && ./configure --add-module=../ngx_http_proxy_connect_module-master --with-http_ssl_module \ 22 | && make \ 23 | && make install \ 24 | && cd .. \ 25 | && rm -rf nginx-1.15.2 ngx_http_proxy_connect_module-master 26 | -------------------------------------------------------------------------------- /software/nsis/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM monokrome/wine 2 | 3 | LABEL org.opencontainers.image.authors="zachdeibert@gmail.com" 4 | 5 | RUN apt-get update && apt-get install -y nsis unzip make && rm -rf /var/lib/apt/lists/* 6 | 7 | ADD http://nsis.sourceforge.net/mediawiki/images/c/c9/Inetc.zip /tmp/Inetc.zip 8 | ADD http://nsis.sourceforge.net/mediawiki/images/9/9d/Untgz.zip /tmp/Untgz.zip 9 | ADD http://nsis.sourceforge.net/mediawiki/images/8/88/NsUnzip.zip /tmp/NsUnzip.zip 10 | 11 | RUN unzip /tmp/Inetc.zip -d /tmp/Inetc/ 12 | RUN unzip /tmp/Untgz.zip -d /tmp/ 13 | RUN unzip /tmp/NsUnzip.zip -d /tmp/NsUnzip/ 14 | 15 | RUN cp /tmp/Inetc/Plugins/x86-ansi/INetC.dll /usr/share/nsis/Plugins/ 16 | RUN cp /tmp/untgz/untgz.dll /usr/share/nsis/Plugins/ 17 | RUN cp /tmp/NsUnzip/nsUnzip.dll /usr/share/nsis/Plugins/ 18 | 19 | RUN rm -rf /tmp/{Inetc,Untgz,NsUnzip}{,.zip} 20 | -------------------------------------------------------------------------------- /software/remote-ssh-forward/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian 2 | 3 | LABEL org.opencontainers.image.authors="zachdeibert@gmail.com" 4 | 5 | ENTRYPOINT [ "ssh", "-N", "-R" ] 6 | VOLUME /home/ssh/.ssh 7 | 8 | RUN apt update \ 9 | && apt install -y \ 10 | openssh-client \ 11 | && rm -rf /var/lib/apt/lists/* \ 12 | && useradd user 13 | 14 | USER user 15 | -------------------------------------------------------------------------------- /software/typescript/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node 2 | 3 | LABEL org.opencontainers.image.authors="zachdeibert@gmail.com" 4 | 5 | ENV PATH $PATH:/usr/lib/node_modules/bin 6 | RUN npm install -g typescript typings 7 | RUN typings install dt~node --global 8 | RUN mkdir -p /srv/typescript 9 | 10 | WORKDIR /srv/typescript 11 | VOLUME /srv/typescript 12 | CMD tsc -p . --watch --sourceMap 13 | --------------------------------------------------------------------------------