Перейти к основному содержимому

tuna и Docker

Туннель можно запустить отдельным контейнером рядом с приложением. tuna обращается к приложению по имени сервиса Docker Compose, поэтому публиковать порт приложения на хосте не нужно.

Шаг 1. Создайте API-ключ​

В контейнере нет браузера для tuna login, поэтому tuna входит по API-ключу. Создайте API-ключ с набором «Для туннелей» и сохраните его в файл .env рядом с compose.yml:

.env
TUNA_API_KEY=<ваш_ключ>

Шаг 2. Опишите сервисы​

В примере приложение — тестовый веб-сервер whoami, он отвечает данными запроса. Замените его на своё приложение и порт:

compose.yml
services:
web:
image: traefik/whoami
tuna:
image: yuccastream/tuna:latest
command: http web:80
restart: always
environment:
TUNA_API_KEY: ${TUNA_API_KEY}
depends_on:
- web

Шаг 3. Запустите​

docker compose up -d
docker compose logs tuna

В логе tuna найдите строку Forwarding: в поле url — публичный адрес туннеля.

Остановить и удалить контейнеры:

docker compose down

Инспектор​

В официальном образе yuccastream/tuna инспектор запросов по умолчанию выключен: в контейнере его обычно никто не открывает. Как включить его и открыть снаружи контейнера — в разделе Инспектор в Docker.

tuna на хосте​

Если tuna установлен на самой машине, а не в контейнере, опубликуйте порт приложения и запустите туннель на него:

compose.yml
services:
web:
image: traefik/whoami
ports:
- 127.0.0.1:8000:80
tuna http 8000