DevOps
CI/CD con Jenkins y Docker en Raspberry Pi: automatización reproducible sin costo cloud
Cómo construir un pipeline de CI/CD reproducible, gobernado y seguro con Jenkins en Docker y despliegue continuo en Raspberry Pi.
Pipeline Continuo Local
La mayoría de los equipos pequeños llegan a CI/CD tarde: primero construyen, luego automatizan. El resultado es semanas de deuda operacional donde cada deploy es manual, no reproducible y dependiente de que alguien sepa el procedimiento. Jenkins sobre Docker cambia eso sin requerir presupuesto cloud.
La arquitectura es directa: un repositorio Git en GitHub dispara builds en Jenkins. Jenkins corre en Docker en tu laptop o servidor local. El Jenkinsfile define el pipeline como código: checkout, build, SSH al servidor de producción, git fetch + reset hard, docker compose up. Cada deploy es idéntico al anterior.
El error clásico es usar git pull en el servidor de producción. Si hay archivos modificados localmente —un docker-compose.yml editado manualmente, un Jenkinsfile de prueba— git pull aborta. La solución es git fetch origin && git reset --hard origin/main: sincronización forzada sin fricción, sin preguntas.
SSH key auth via sshagent reemplaza contraseñas en el pipeline. El credential almacenado en Jenkins contiene la clave privada; Jenkins Agent inyecta SSH_AUTH_SOCK en el proceso. El servidor de producción solo necesita la clave pública en authorized_keys. No hay contraseñas en el código ni en los logs.
El Dockerfile para Next.js en ARM64 requiere atención: la fase de build necesita memoria adicional (NODE_OPTIONS=--max-old-space-size=1536) o el proceso muere por OOM en Raspberry Pi. El multi-stage build (builder + runner) mantiene la imagen final liviana: solo los artefactos .next y node_modules de producción.
La lección de gobernanza es que los env vars no deben vivir en el Dockerfile ni en el docker-compose.yml del repo. Un archivo .env.production en el servidor, referenciado via env_file, separa los secretos del código. Jenkins resetea el repo en cada deploy, pero el .env.production persiste porque no está bajo control de versiones.
Un pipeline CI/CD propio no es hobby: es disciplina de plataforma. Saber exactamente qué ocurre en cada deploy, poder reproducirlo, revertirlo y auditarlo es más valioso que la conveniencia de un servicio gestionado. Y cuando todo corre en tu propia Raspberry Pi, la factura mensual es cero.
Lectura ejecutiva
Usa este tema como lente de liderazgo: identifica el riesgo operacional, define el resultado de negocio y luego elige la ruta de arquitectura o automatización.
Receba insights empresariais
Arquitetura, automação IA e liderança tecnológica na sua caixa de entrada.
Seu e-mail é usado para gerenciar esta assinatura. Você pode cancelar a qualquer momento. Política de Privacidad