Docker CUDA
Instalação com Docker Compose para Linux com GPU NVIDIA.
Para Quem É
Use este caminho quando quiser rodar o Toposync em container com aceleração NVIDIA CUDA para vision.
Este guia usa build local do repositório. Ainda não assume imagem pública em registry.
Para suporte por arquitetura e alternativas no Windows, consulte Compatibilidade.
Pré-requisitos
- Linux com GPU NVIDIA.
- Driver NVIDIA instalado no host.
- Docker.
- Docker Compose.
- NVIDIA Container Toolkit configurado.
- Checkout do repositório Toposync.
Verifique se o Docker enxerga a GPU:
docker run --rm --gpus all nvidia/cuda:12.6.3-base-ubuntu24.04 nvidia-smi
Se esse comando falhar, corrija o driver ou o NVIDIA Container Toolkit antes de subir o Toposync.
Instalação
Na raiz do repositório:
docker compose -f docker-compose.yml -f docker-compose.cuda.yml up -d --build
Isso cria a imagem local toposync:local usando o target runtime-cuda.
Por padrão:
- porta pública:
8000; - pasta de dados no host:
./toposync-data; - pasta de dados no container:
/data; - bundle instalado:
toposync-vision-cuda.
Como Rodar
Subir:
docker compose -f docker-compose.yml -f docker-compose.cuda.yml up -d
Parar:
docker compose -f docker-compose.yml -f docker-compose.cuda.yml stop
Ver logs:
docker compose -f docker-compose.yml -f docker-compose.cuda.yml logs -f toposync
Alterar porta pública:
TOPOSYNC_PORT=8080 \
docker compose -f docker-compose.yml -f docker-compose.cuda.yml up -d --build
Como Acessar
No host:
http://127.0.0.1:8000/
Na rede local:
http://<ip-do-servidor>:8000/
Como Verificar
Verifique a API:
curl -I http://127.0.0.1:8000/
curl http://127.0.0.1:8000/api/health
curl http://127.0.0.1:8000/api/auth/status
Verifique a GPU dentro do container:
docker compose -f docker-compose.yml -f docker-compose.cuda.yml exec toposync nvidia-smi
O esperado:
/responde200;/api/healthresponde200;/api/auth/statusresponde JSON e pode indicarrequires_setup: trueno primeiro acesso;nvidia-smimostra a GPU dentro do container.
Depois de concluir o setup/login pela UI, a API autenticada passa a responder as rotas protegidas, como /api/extensions.
Streaming Opcional
Para incluir streaming na imagem CUDA:
TOPOSYNC_APT_PACKAGES=ffmpeg \
TOPOSYNC_EXTRA_WHEELS="/wheelhouse/toposync_ext_streaming-*.whl" \
docker compose -f docker-compose.yml -f docker-compose.cuda.yml up -d --build
Nesse modo:
- FFmpeg entra como pacote do sistema;
- a extensão
toposync-ext-streamingentra como wheel adicional; - dados e runtime continuam em
/data.
Como Atualizar
Atualize o checkout e recrie a imagem:
git pull
docker compose -f docker-compose.yml -f docker-compose.cuda.yml up -d --build
Como Desinstalar
Parar e remover o container:
docker compose -f docker-compose.yml -f docker-compose.cuda.yml down
Remover também os dados locais:
rm -rf ./toposync-data
Troubleshooting
Docker não enxerga a GPU
Teste:
docker run --rm --gpus all nvidia/cuda:12.6.3-base-ubuntu24.04 nvidia-smi
Se falhar, o problema está no host: driver NVIDIA, Docker ou NVIDIA Container Toolkit.
Container não fica saudável
Veja os logs:
docker compose -f docker-compose.yml -f docker-compose.cuda.yml logs -f toposync
Teste o healthcheck:
curl http://127.0.0.1:8000/api/health
curl http://127.0.0.1:8000/api/auth/status
Estou no Windows
Para Windows, prefira instalação nativa com toposync-vision-directml ou o processing server como serviço. Docker CUDA é tratado aqui como caminho Linux + NVIDIA.