nginx-proxy&letsencrypt-nginx-proxy-companionコンテナ環境下で仮想ホストを追加する手順を残しておきます。
- サブドメインをDNS登録(nginx-proxyが稼働しているサーバのIPアドレスと紐づけ)
- ウチではお名前.comからドメイン(windesign.work)を入手しているので、お名前.com NaviにログインしてDNS設定。
- 仮想ホスト用ディレクトリを作成
- docker-compose.ymlを作成
- コンテナ起動
- 起動するだけでnginx-proxyが見つけてくれる。
仮想ホスト用ディレクトリを作成
$ mkdir hoge $ cd hoge
docker-compose.ymlを作成
version: '2'
services:
hoge:
image: <コンテナイメージ名>
expose:
- "8080"
environment:
- VIRTUAL_HOST=<サブドメイン名>
- LETSENCRYPT_HOST=<サブドメイン名>
- LETSENCRYPT_EMAIL=<Let's Ecnrypt通知用メールアドレス>
networks:
- ssl_proxy
networks:
ssl_proxy:
external: true
各設定内容の解説
- image…Dockerコンテナのイメージ名(DockerHubにあるもの)
- buildなど他の手段もあるかも。(とりあえず、自分はimageで困ってないので)
- expose…コンテナが開けているポートが80以外の場合に指定。
- environment…環境変数。関係するのは、下記の3つ。
- VIRTUAL_HOST…必須。nginx-proxyは、このホスト名でアクセスしてきたリクエストを、このコンテナに振り分ける。
- LETSENCRYPT_HOST…オプション。SSL対応する場合、必須。letsencrypt-nginx-proxy-companionは、この名前でLet’s Encryptに登録する。
- LETSENCRYPT_EMAIL…オプション。Let’s Encryptからの通知用メールアドレス。
コンテナ起動
$ sudo docker-compose up -d