inhumantsar.dockerautoproxy
dockerautoproxy
Was?
Verwendet das jwilder/nginx-proxy Docker-Image, um die Einrichtung eines Reverse Proxys in Docker Swarm zu automatisieren.
Wie?
Verwendung der Rolle
Das Image ist so konzipiert, dass es dynamisch konfiguriert wird. Daher gibt es nicht viel, was im Voraus getan werden muss. Siehe defaults/main.yml.
Standardmäßig wird das alpine Image verwendet. Ändern Sie nginx_version in latest, um ein debian:jesse basiertes Image zu verwenden.
Es wird ein Netzwerk namens nginx_proxy_net erstellt, dem Ihre proxied Container beitreten müssen.
Verwendung des Nginx Proxys
Container, die einen Proxy benötigen, müssen zwei Dinge tun: Den Port, der proxiert werden soll, freigeben und einen virtuellen Host angeben.
Ports können im Dockerfile mit EXPOSE, in der Kommandozeile mit --expose oder in der Docker Compose-Datei mit expose angegeben werden.
Virtuelle Hosts müssen in einer Umgebungsvariable namens VIRTUAL_HOST angegeben werden.
Erweiterte Nutzung
Benutzerdefinierte Nginx-Konfigurationen
Können geladen werden, indem ein Host-Pfad mit Nginx-Konfigurationsdateien unter Verwendung der Variable dockerautoproxy_config_path gemountet wird. Der Pfad wird erstellt, wenn er auf dem Host nicht bereits existiert.
SSL-Zertifikate
SSL-Zertifikate können automatisiert generiert oder manuell angegeben werden. Standardmäßig werden sie in einem Datenvolumen gespeichert, das zwischen den Containern geteilt wird. Sie können dockerautoproxy_certs_path verwenden, um einen Pfad auf dem Host zu mounten, um sie dort zu speichern.
Um Zertifikate automatisch zu generieren, setzen Sie die Ansible-Variable dockerautoproxy_ssl_companion auf true. Dies startet einen zweiten Container, der die SSL-Zertifikatserstellung mit Let's Encrypt übernimmt. Um einen Dienst dafür zu aktivieren, setzen Sie die Umgebungsvariablen des Containers LETSENCRYPT_HOST und LETSENCRYPT_EMAIL. Zum Beispiel:
$ docker run -d \
--name example-app \
-e "VIRTUAL_HOST=example.com,www.example.com,mail.example.com" \
-e "LETSENCRYPT_HOST=example.com,www.example.com,mail.example.com" \
-e "[email protected]" \
tutum/apache-php
