これまではOpenRestyを使い動的にHTTP Routingをしてきましたが、figへの変更にあわせて単純なNginxのリバースプロキシと、起動時にsedでlinkされた環境変数を置換する方法にします。またNgixの設定ファイルやSSL証明書もイメージに入れていたのでプライベートのレジストリを使っていました。Docker Hub Registryに公開するため、SSL証明書などはDockerホストのディレクトリに保存するように変更します。fleetのunitファイルに比べて、リファクタリングしたこともありfig.ymlはかなりスッキリしました。
fig.yml
Dockerホストに/opt/nginx/
ディレクトリを作成します。/opt/nginx/certs
には証明書を配置します。/opt/nginx/sites-enabled
ディレクトリには、masato/nginx-rpコンテナの起動時にテンプレートから生成するdefaultファイルが配置されます。ここでlinkされたMoinMoinコンテナのIPアドレスを置換してupstreamに指定します。
moinmoin: |
superuserの作成
command: FooBar
で指定しているユーザーはMoinMoinのsuperuserになります。このMoinMoinの唯一の接続ユーザーになります。docker execでコンテナに接続してユーザーファイルを作成します。
$ docker exec -it root_moinmoin_1 bash |
/data/moin/user/
以下に、 ##########.##.#####のフォーマットでユーザーファイルが作成されるので、権限を変更して使えるようにします。
$ chown www-data /data/moin/user/##########.##.##### |
Nginx Reverse Proxy
masato/nginx-rpにDockerイメージを公開しました。 Automated BuildのGitHubはmasato/nginx-rpです。README.mdはちゃんと書かないといけないです。