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
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.
- 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.
- 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.
- 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.
Perfil de infraestructura
Estimación inicial derivada del repositorio y de los servicios detectados.
Despliegue detectado
Qué señales reales de instalación hemos encontrado.
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.
Stack y dependencias
Componentes inferidos a partir de manifests, configuración y documentación.
Puede sustituir a
Relaciones detectadas por el análisis del repositorio y su categoría.
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.