Docker Compose: готовые сценарии
Примеры для приложения в Compose, приложения на хосте и нескольких сервисов.
1 минутаПриложение в том же Compose
Используйте имя сервиса и его внутренний порт. Публиковать порт приложения на хост необязательно.
services:
app:
image: nginx:alpine
tunnel:
image: sknet/sknet:latest
command: [client]
restart: unless-stopped
environment:
SKNET_REMOTE: control.sknet.gitaspen.ru:7000
SKNET_TOKEN: ${SKNET_TOKEN:?Добавьте токен в .env}
SKNET_TLS: "1"
SKNET_NAME: my-app
SKNET_LOCAL: http://app:80
depends_on:
- appПриложение запущено на компьютере
services:
tunnel:
image: sknet/sknet:latest
command: [client]
environment:
SKNET_REMOTE: control.sknet.gitaspen.ru:7000
SKNET_TOKEN: ${SKNET_TOKEN}
SKNET_TLS: "1"
SKNET_NAME: local-api
SKNET_LOCAL: http://host.docker.internal:8000Несколько приложений
Для каждого публичного проекта создайте отдельный туннель и отдельный токен. Так один отозванный токен не затронет остальные проекты.
services:
site-tunnel:
image: sknet/sknet:latest
command: [client]
environment:
SKNET_NAME: site
SKNET_TOKEN: ${SKNET_SITE_TOKEN}
SKNET_REMOTE: control.sknet.gitaspen.ru:7000
SKNET_TLS: "1"
SKNET_LOCAL: http://site:3000
api-tunnel:
image: sknet/sknet:latest
command: [client]
environment:
SKNET_NAME: api
SKNET_TOKEN: ${SKNET_API_TOKEN}
SKNET_REMOTE: control.sknet.gitaspen.ru:7000
SKNET_TLS: "1"
SKNET_LOCAL: http://api:8000Имя api зарезервировано самим SKNet. В реальном проекте используйте, например, my-api.
WebSocket и большие ответы
Дополнительная настройка не нужна. Upgrade-запросы и потоковые тела проходят через тот же HTTP-туннель.
Инструкция не помогла?
Откройте исходник документа по ссылке «Предложить правку» — там же видно, что и когда в нём менялось.