I'm seeing dockerd is missing a bunch of stuff related to storage drivers out of the box, whether I use my own image or an AWS-managed one. For some reason CodeBuild uses this ancient 4.x kernel which means hunting for linux image headers packages in modern Ubuntu versions is impossible. Typical dockerd output:
ERRO[2023-03-07T14:20:19.611162560Z] failed to mount overlay: invalid argument storage-driver=overlay2
ERRO[2023-03-07T14:20:19.611239386Z] exec: "fuse-overlayfs": executable file not found in $PATH storage-driver=fuse-overlayfs
ERRO[2023-03-07T14:20:19.611337258Z] AUFS was not found in /proc/filesystems storage-driver=aufs
ERRO[2023-03-07T14:20:19.618839003Z] failed to mount overlay: invalid argument storage-driver=overlay
ERRO[2023-03-07T14:20:19.694094614Z] Udev sync is not supported. This will lead to data loss and unexpected behavior. Install a more recent version of libdevmapper or select a different storage driver. For more information, see https://docs.docker.com/engine/reference/commandline/dockerd/#storage-driver-options storage-driver=devicemapper
I can build Dockerfiles (slowly) in this degraded state, but spinning up single-node k8s clusters or docker-compose environments is almost unusable.
And kernel version for reference Linux 1ce6e6541803 4.14.281-212.502.amzn2.x86_64 #1 SMP Thu May 26 09:52:17 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
.
Is there something else I can configure? Why would docker support be so broken out of the box in CodeBuild, even with AWS-managed images?