OpenResty с Docker Compose не может разрешить собственное имя (hostname.domainname) в блоке Lua
У меня есть образ докера, содержащий сервер OpenResty. Я запускаю его в файле docker-compose, например так:
version: '2.1'
services:
dev.example.com:
# etc.
Если я установлю resolver
использовать Docker один в конфигурации OpenResty, то я могу сослаться на dev.example.com
и он разрешается на правильный IP:
http {
resolver 127.0.0.11;
}
Однако я бы предпочел не называть услугу dev.example.com
и вместо этого используйте hostname
а также domainname
в docker-compose:
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?
1 ответ
Вместо изменения domainname
а также hostname
, container_name
можно указать:
version: '2.1'
services:
proxy:
container_name: dev.example.com
# etc.
Одним из эффектов установки имени контейнера является то, что Docker DNS разрешает dev.example.com
в контейнер.