46 lines
2.1 KiB
Plaintext
46 lines
2.1 KiB
Plaintext
|
# 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"
|
|||
|
#...
|
|||
|
```
|