inhumantsar.dockerautoproxy
dockerautoproxy
Co to jest?
Używa obrazu Dockera jwilder/nginx-proxy, aby zautomatyzować konfigurację reverse proxy w Docker Swarm.
Jak to działa?
Użycie roli
Obraz ten jest zaprojektowany tak, aby dynamicznie konfigurować, więc nie ma wiele do zrobienia z wyprzedzeniem. Zobacz defaults/main.yml
.
Domyślnie używany jest obraz alpine
, można zmienić nginx_version
na latest
, aby użyć obrazu debian:jesse
.
Tworzy sieć o nazwie nginx_proxy_net
, do której muszą dołączyć kontenery proxy.
Użycie Nginx Proxy
Kontenery, które potrzebują proxy, muszą zrobić dwie rzeczy: Umożliwić portowi proxy oraz określić host wirtualny.
Porty można określić w pliku Dockerfile za pomocą EXPOSE
, w wierszu poleceń za pomocą --expose
, lub w pliku Docker Compose za pomocą expose
.
Hosty wirtualne muszą być określone w zmiennej środowiskowej o nazwie VIRTUAL_HOST
.
Zaawansowane użycie
Niestandardowe konfiguracje nginx
Mogą być ładowane przez zamontowanie ścieżki hosta zawierającej pliki konfiguracyjne nginx przy użyciu zmiennej dockerautoproxy_config_path
. Ścieżka zostanie utworzona, jeśli już nie istnieje na hoście.
Certyfikaty SSL
Certyfikaty SSL mogą być generowane automatycznie lub określane ręcznie. Domyślnie są przechowywane w wolumenie danych współdzielonym między kontenerami. Można użyć dockerautoproxy_certs_path
, aby zamontować ścieżkę na hoście do ich przechowywania.
Aby automatycznie generować certyfikaty, ustaw zmienną Ansible dockerautoproxy_ssl_companion
na true
. To uruchomi drugi kontener, który zajmie się generowaniem certyfikatów SSL z Let's Encrypt. Aby włączyć usługę dla tego, ustawić zmienne środowiskowe kontenera LETSENCRYPT_HOST
i LETSENCRYPT_EMAIL
. Na przykład:
$ 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
Sets up a dynamic Nginx reverse proxy on Docker Swarm
ansible-galaxy install inhumantsar.dockerautoproxy