Nginx
帶有 Docker Compose 的 OpenResty 無法在 Lua 塊中解析自己的名稱(hostname.domainname)
我有一個包含 OpenResty 伺服器的 docker 映像。我在這樣的 docker-compose 文件中執行它:
version: '2.1' services: dev.example.com: # etc.
如果我
resolver
在 OpenResty 配置中設置為使用 Docker 之一,那麼我可以參考dev.example.com
它並解析為正確的 IP:http { resolver 127.0.0.11; }
但是,我不想命名 service
dev.example.com
,而是在 docker-compose 中使用hostname
and :domainname
version: '2.1' services: proxy: domainname: example.com hostname: dev # etc.
這將使我能夠使用環境變數來控制主機名。問題是,當我使用這些參數而不是服務名稱時,
dev.example.com
無法再在 Lua 塊中解析,即使在執行的容器中使用 等的基本測試ping
正確curl
解析,並且像這樣的簡單塊適用於任何一個案子:location /test { proxy_pass https://dev.example.com/static.html }
如何以與 OpenResty 兼容的方式在不更改服務名稱的情況下動態配置域/主機名?
可以指定而不是更改
domainname
andhostname
:container_name
version: '2.1' services: proxy: container_name: dev.example.com # etc.
設置容器名稱的效果之一是 Docker DNS 解析
dev.example.com
到容器。