46 lines
2.1 KiB
Markdown
46 lines
2.1 KiB
Markdown
# Nginx Routes Helper
|
||
|
||
Специальный образ NGINX, который упрощает работу с проксированием портов между разными сетками у докер контейнеров.
|
||
|
||
По-умолчанию установлены утилиты для работы с роутами.
|
||
|
||
# Пре-стартовый скрипт
|
||
|
||
При старте контейнера происходит проверка на наличие скрипта, который должен быть выполнен в самом начале.
|
||
|
||
Скрипт располагается в `/invoke_initial_script.sh`, собственно сюда его и надо монтировать.
|
||
|
||
Например, требуется добавить роуты в контейнер при его старте.
|
||
|
||
`/invoke_initial_script.sh`:
|
||
```bash
|
||
#!/usr/bin/env bash
|
||
echo "Adding routes..."
|
||
ip route add 192.168.255.0/24 via 172.20.20.2
|
||
echo "Routes added!"
|
||
```
|
||
|
||
Тут может быть совершенно что угодно, этот скрипт выполнится до старта NGINX.
|
||
|
||
# Проброс портов по-умолчанию
|
||
|
||
Если пользователь не примонтирует свой `/etc/nginx/nginx.conf`, то по-умолчанию будет использоваться
|
||
обычный `stream` прокси с порта на адрес. Слушаемый порт и целевой адрес указываются через переменные окружения:
|
||
- `NGINX_PROXY_SOURCE_PORT` - Порт (например `80`), который слушает NGINX
|
||
- `NGINX_PROXY_TARGET_ADDRESS` - Адрес и порт (например `localhost:25565`), куда будет отправляться трафик
|
||
|
||
Пример использования в `docker-compose`:
|
||
```yml
|
||
version: '3.7'
|
||
services:
|
||
test-nginx:
|
||
image: "git.tswf.io/docker-base-images/nginx-routes:latest"
|
||
ports:
|
||
- "25565:25565"
|
||
environment:
|
||
NGINX_PROXY_SOURCE_PORT: 25565
|
||
NGINX_PROXY_TARGET_ADDRESS: "another_container:9000"
|
||
another_container:
|
||
image: "blablabla"
|
||
#...
|
||
``` |