Docker.io in der Praxis – OpenVPN Server

Nach dem ersten Artikel zu Docker nun ein weiterer Post zum Thema.

Diesmal direkt mit dem Erstellen eines eigenen Images. Es geht um OpenVPN, ein open-source VPN, welches eine Vielzahl von Plattformen (Windows, OS X, Linux, Android und iOS) unterstützt.

Veröffentlicht habe ich das ganze unter github.Die zentrale Datei ist die Datei Dockerfile, welche den Build des Images steuert.

FROM debian

MAINTAINER Joachim Lusiardi

RUN apt-get update; \
    apt-get -y install openvpn ;

ADD start.sh /start.sh

RUN chmod +x /start.sh

VOLUME ["/etc/openvpn"]
VOLUME ["/var/log/openvpn"]

EXPOSE 1194/udp
EXPOSE 1194/tcp

ENTRYPOINT /start.sh

FROM legt ein Basis-Image fest, hier die neuste Version von Debian.
MAINTAINER gibt den Betreuer des Images an.
RUN führt Befehle innerhalb des Images aus. Hier das Updaten der Packet-Quellen, Installieren von OpenVPN und dem Ausführbarmachen des start-Skripts.
ADD fügt eine Datei dem Image hinzu.
VOLUME gibt an, das ein Verzeichnis des Images beim Ausführen auf ein Verzeichnis des Hosts gelegt werden kann.
EXPOSE definiert welche Ports von ausserhalb des Images erreichbar sein sollen. Diese sind nicht automatisch beim Starten des Images auf eine öffentliche IP gebunden.
ENTRYPOINT gibt an, welches Kommando ausgeführt werden soll.

Weitere Detail auf github und auch unter https://registry.hub.docker.com/u/shing19m/docker-openvpn-server/.

Python 3.3.0 auf Pogoplug: Watcher.py portiert

Watcher ist ein Dienstprogramm, welche analog zu incrond auf Änderungen in Verzeichnissen reagieren kann. Im Gegensatz zu incrond kann Watcher (im Original von Greggory Hernandez, geforked von Andreas Gohr) jedoch auch Verzeichnisse rekursiv betrachten.

Auf meinem Pogoplug die neuste Version von github per zip-Datei geladen, aber es funktionierte nicht. Grund: Python 2.7.x vs. Python 3.3.0.

Nach einigen Anpassungen funktioniert das Skript nun, und ich habe einen weiteren Fork angelegt, der diese Änderungen beinhaltet. Dank der github-OS X-Software war es auf für git Neulinge einfach, die Änderungen hoch zu laden.

Weitere Verbesserungen könnten eventuell folgen.