OpenRestyサーバーを含むDockerイメージがあります。私は次のようなdocker-composeファイル内で実行しています:
version: '2.1'
services:
dev.example.com:
# etc.
OpenResty構成でDockerを使用するようにresolver
を設定すると、dev.example.com
を参照でき、正しいIPに解決されます。
http {
resolver 127.0.0.11;
}
ただし、サービスにdev.example.com
という名前を付けず、代わりにdocker-composeでhostname
とdomainname
を使用したいと思います。
version: '2.1'
services:
proxy:
domainname: example.com
hostname: dev
# etc.
これにより、環境変数を使用してホスト名を制御できるようになります。問題は、サービス名の代わりにこれらのパラメーターを使用すると、ping
、curl
などの基本的なテストを行っても、Luaブロック内でdev.example.com
を解決できなくなることです。実行中のコンテナ内から正しく解決され、このような単純なブロックはどちらの場合でも機能します。
location /test {
proxy_pass https://dev.example.com/static.html
}
OpenRestyと互換性のある方法で、サービス名を変更せずにドメイン/ホスト名を動的に構成するにはどうすればよいですか?
domainname
とhostname
を変更する代わりに、container_name
を指定できます。
version: '2.1'
services:
proxy:
container_name: dev.example.com
# etc.
コンテナー名を設定する効果の1つは、DockerDNSがdev.example.com
をコンテナーに解決することです。