We Built a Custom CI Runner with Go 1.24, Docker 26.0, and Kubernetes 1.32 Off-the-shelf CI runners like GitHub Actions or GitLab CI runners are great for most teams, but we hit limitations around custom workload requirements, cost optimization for high-volume builds, and strict security controls. To solve this, we built a custom CI runner using Go 1.24, Docker 26.0, and Kubernetes 1.32 — here’s how we did it. Why Build a Custom CI Runner? Our team runs over 10,000 CI jobs per day across multiple repositories, many requiring specialized build environments, GPU access, or air-gapped execution. Pre-built runners charged per-minute for our scale, and we couldn’t customize the execution environment to meet our security team’s requirements for rootless container execution and audit logging. A custom runner let us tailor every layer of the stack to our needs.…