Ctrl K
ComunidadGuías…
GITHUB · ANALIZADO

garm-provider-docker

Proveedor externo para GARM que gestiona runners efímeros de GitHub Actions como contenedores Docker en un único host. Diseñado para entornos single-node (NAS, Raspberry Pi).

Ficha actualizada 25 sept 2026, 12:25 · upstream 25 sept 2026, 12:19 · release sin release detectada

Ver códigoProblemas y ayudaRepositorio ↗
00

Qué es garm-provider-docker

Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.

Este repositorio implementa un proveedor externo para GARM que gestiona el ciclo de vida de runners efímeros de GitHub Actions ejecutándolos como contenedores Docker en un único host. No funciona como un contenedor ejecutable por sí mismo, sino como una binaria estática compilada en Go (CGO_ENABLED=0) que se invoca como subprocesso del controlador GARM. Está diseñado específicamente para despliegues single-node donde Docker es el runtime nativo, como NAS (Synology DSM, Unraid), Raspberry Pi o máquinas de escritorio.

CASOS DE USO
  • Automatización CI/CD en entornos homelab o servidores NAS (Synology, Unraid).
  • Ejecución de workflows GitHub Actions en hardware limitado como Raspberry Pi.
  • Aislamiento estricto por tarea para evitar contaminación entre jobs en el mismo host.
  • Gestión centralizada de runners efímeros sin necesidad de máquina virtual adicional.
  • Implementación controlada de DinD para builds que requieren Docker dentro del runner.
  • Despliegue multi-arquitectura (amd64 y arm64) en la misma infraestructura.
PUNTOS DESTACADOS
  • Binaria estática compilada con CGO_ENABLED=0, sin dependencias de libc externas.
  • Soporte nativo multi-arquitectura para linux/amd64 y linux/arm64.
  • Documentación técnica exhaustiva mediante ADRs para estrategias de limpieza, cachés y seguridad.
  • Interfaz compatible con versiones v0.1.0 y v0.1.1 del protocolo GARM.
  • Validación estricta de extra_specs mediante JSON Schema para prevenir configuraciones inseguras.
  • Gestión segura de credenciales JIT vía tmpfs en memoria, evitando persistencia en disco.
PRECAUCIONES
  • No es un contenedor ejecutable; requiere binaria estática copiada manualmente al sistema de archivos.
  • El modo DinD 'privileged-sidecar' implica riesgo de compromiso del host si el código del job es malicioso.
  • La limpieza de cachés no es automática; requiere intervención manual o comandos externos específicos.
  • Requiere acceso directo al socket Docker del host para funcionar correctamente.
  • No compatible con Synology DSM/Unraid para el modo DinD 'sysbox-runc' por falta de soporte Sysbox.
01

Perfil de infraestructura

Estimación inicial derivada del repositorio y de los servicios detectados.

CPU2 vCPUrecomendación inicial
MEMORIA2 GBRAM estimada
DISCO10 GBalmacenamiento base
COMPLEJIDADmediumnivel de operación
02

Despliegue detectado

Qué señales reales de instalación hemos encontrado.

Docker detectado

Extraer la binaria estática desde la imagen oficial o compilar desde fuente. Configurar GARM apuntando al path del ejecutable, no como contenedor. Usar siempre digests SHA256 para las imágenes runner y DinD. Planificar almacenamiento adicional para cachés persistentes que no se borran automáticamente. Montar el socket Docker solo en el proceso de GARM, nunca en los runners.

✓Dockerfile
—Compose
—One-click
03

Stack y dependencias

Componentes inferidos a partir de manifests, configuración y documentación.

FRAMEWORKS
Next.jsNode.jsGo
SERVICIOS
No detectados
BASES DE DATOS
No detectadas
PUERTOS
No detectados
05

Puede sustituir a

Relaciones detectadas por el análisis del repositorio y su categoría.

06

Experiencia real de la comunidad

Ayuda a contrastar la estimación automática con instalaciones reales.

Todavía no hay datos comunitarios para este proyecto.