Docker
+Tesseras fornece uma imagem Docker para executar o daemon em conteineres. Isso e util para servidores, testar redes com multiplos nos e ambientes de CI.
+Construindo a imagem
+A partir da raiz do repositorio:
+docker build -t tesseras-daemon .
+
+O Dockerfile multi-estagio usa rust:1.85 para compilar e debian:bookworm-slim como base de execucao. A imagem resultante e pequena e contem apenas o binario do daemon e certificados CA.
Executando um unico no
+docker run -d \
+ --name tesseras \
+ -p 4433:4433/udp \
+ tesseras-daemon
+
+Isso inicia um no que:
+-
+
- Escuta na porta UDP 4433 +
- Faz bootstrap a partir dos nos semente padrao +
- Armazena dados dentro do conteiner (efemero) +
Para persistir dados entre reinicializacoes do conteiner, monte um volume:
+docker run -d \
+ --name tesseras \
+ -p 4433:4433/udp \
+ -v tesseras-data:/root/.local/share/tesseras \
+ tesseras-daemon
+
+Executando como no semente
+Para executar um no semente que nao faz bootstrap de ninguem:
+docker run -d \
+ --name tesseras-seed \
+ -p 4433:4433/udp \
+ tesseras-daemon --listen 0.0.0.0:4433 --bootstrap ""
+
+Rede multi-no com Docker Compose
+O repositorio inclui um arquivo Docker Compose para testar uma rede de 3 nos:
+services:
+ boot1:
+ build: ../..
+ command: ["--listen", "0.0.0.0:4433", "--bootstrap", ""]
+ ports: ["4433:4433/udp"]
+
+ boot2:
+ build: ../..
+ command: ["--listen", "0.0.0.0:4433", "--bootstrap", "boot1:4433"]
+ depends_on: [boot1]
+
+ client:
+ build: ../..
+ command: ["--listen", "0.0.0.0:4433", "--bootstrap", "boot2:4433"]
+ depends_on: [boot2]
+
+Iniciar a rede:
+cd tests/smoke
+docker compose up --build -d
+
+Verificar que todos os nos estao executando:
+docker compose logs --tail=5
+
+Voce devera ver daemon ready nos logs de cada no, e bootstrap successful para boot2 e client.
Parar a rede:
+docker compose down
+
+Configuracao personalizada
+Para usar um arquivo de configuracao com Docker, monte-o no conteiner:
+docker run -d \
+ --name tesseras \
+ -p 4433:4433/udp \
+ -v ./config.toml:/etc/tesseras/config.toml:ro \
+ -v tesseras-data:/root/.local/share/tesseras \
+ tesseras-daemon --config /etc/tesseras/config.toml
+
+Veja o capitulo Configuracao para todas as opcoes disponiveis.
+ +