DinD via Kubernetes runner = Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

Summary

Latest gitlab runner v16.4.1 (installed via 'helm template ... from helm chart version: 0.57.1) and it otherwise runs fine. I can build, test, security-scan, etc, but it fails when it gets to the docker build job as so many others have reported with a Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

Additional details

My cluster is a 6-node Debian 12-based host OS using CRI/O as a docker provider and Kubernetes version 1.27.7. So, there IS no /var/run/docker.sock on each node. HOWEVER, there IS a /var/run/crio/crio.sock that everything else Kubernetes can use for the socket and I can see container process info using it in lieu of /var/run/docker.sock.

I've tried doing the mount trick in the worker configmap template (And if I'm quick enough, I can shell into the spawned job container and see that /var/run/docker.sock is there): [[runners]] [runners.kubernetes] namespace = "gitlab" image = "ubuntu:22.04" [runners.kubernetes.dns_config] options = [{ name = "ndots", value="2" }] [[runners.kubernetes.volumes.host_path]] name = "docker" mount_path = "/var/run/crio/crio.sock" host_path = "/var/run/docker.sock"

I've tried adding the MUCH older work-around directly in .gitlab-ci.yml like so: build_image: image: docker:18.09.7-dind stage: release services: - docker:18.09.7-dind variables: DOCKER_DRIVER: overlay DOCKER_HOST: TCP://localhost:2375

but 100% of builds fail at the DIND build job.

Any suggestions on how to get around this?