inhumantsar.dockerautoproxy

dockerautoproxy

何ですか?

jwilder/nginx-proxy Dockerイメージを使用して、Docker Swarm内のリバースプロキシ設定を自動化します。

使い方は?

役割の使用

このイメージは動的に設定されるように設計されているため、事前にすることはあまりありません。詳細はdefaults/main.ymlを参照してください。

デフォルトではalpineイメージが使用されますが、nginx_versionlatestに変更すると、debian:jesseベースのイメージを使用できます。

nginx_proxy_netというネットワークが作成され、プロキシされたコンテナはこれに参加する必要があります。

Nginxのプロキシ使用法

プロキシが必要なコンテナは、2つのことをする必要があります:プロキシされるポートを公開することと、仮想ホストを指定することです。

ポートはDockerfileでEXPOSEを使用して指定するか、コマンドラインで--exposeを使用するか、Docker Composeファイルでexposeを使用して指定できます。

仮想ホストは、VIRTUAL_HOSTという環境変数で指定する必要があります。

高度な使用法

カスタムnginx設定

ホストパスをマウントしてnginx設定ファイルを読み込むことができます。これはdockerautoproxy_config_path変数を使用して指定します。指定したパスがホスト上に存在しない場合は作成されます。

SSL証明書

SSL証明書は自動生成または手動指定が可能です。デフォルトでは、コンテナ間で共有されるデータボリュームに保存されます。dockerautoproxy_certs_pathを使用して、ホスト上のパスをマウントして保存することができます。

証明書を自動生成するには、Ansibleの変数dockerautoproxy_ssl_companiontrueに設定してください。これにより、Let's EncryptでSSL証明書生成を処理する2つ目のコンテナが起動します。このためにサービスを有効にするには、コンテナの環境変数LETSENCRYPT_HOSTLETSENCRYPT_EMAILを設定します。例えば:

$ 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
ライセンス
bsd-3-clause
ダウンロード
103
所有者