Circleci local execute fails

Hi folks,

I’m on MacOs 10.15.5 using Docker Desktop v20.10.7 and I’m getting the following error when trying to run circle ci locally:

$> circleci local execute --job test

Docker image digest: sha256:c20c6d085dd5d77c1dd3c86ac2f3942b3a548a741805aa08a285c47e001404f5
====>> Spin up environment
Build-agent version ()
System information:
Server Version: 20.10.6
Storage Driver: overlay2
Backing Filesystem: extfs
Cgroup Driver: cgroupfs
Cgroup Version: 1
Kernel Version: 5.10.25-linuxkit
Operating System: Docker Desktop
OSType: linux
Architecture: x86_64

Starting container futurefamily/ci-www
Warning: No authentication provided, using CircleCI credentials for pulls from Docker Hub.
image is cached as futurefamily/ci-www, but refreshing…

Error: error starting container futurefamily/ci-www: Error response from daemon: --storage-opt is supported only for overlay over xfs with ‘pquota’ mount option

latest: Pulling from futurefamily/ci-www
Digest: sha256:81fcf2afa48e0cfc414cd57d449104141156dbab8f77acf543781849abdbd9b5
Status: Image is up to date for futurefamily/ci-www:latest
Error:
Unexpected environment preparation error: Error response from daemon: --storage-opt is supported only for overlay over xfs with ‘pquota’ mount option

Step failed
Task failed
Error: Unhandled prepare executor error: Error response from daemon: --storage-opt is supported only for overlay over xfs with ‘pquota’ mount option

1 Like

I’m getting the same, I can’t seem to find a solution for this. I’m on MacOS 11.4, v20.10.7

Running into the same error as well. I’m using the go repo from the guide here: Using the CircleCI Local CLI - CircleCI

Mac: 11.2.3, M1 chip
Docker Desktop: 3.4.0
Engine: 20.10.7
CircleCI: 0.1.15410+ba6fe81 (homebrew)

% circleci local execute --job build

Docker image digest: sha256:c20c6d085dd5d77c1dd3c86ac2f3942b3a548a741805aa08a285c47e001404f5
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
====>> Spin up environment
Build-agent version  ()
System information:
 Server Version: 20.10.7
 Storage Driver: overlay2
  Backing Filesystem: extfs
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Kernel Version: 5.10.25-linuxkit
 Operating System: Docker Desktop
 OSType: linux
 Architecture: aarch64

Starting container circleci/golang:1.12
Warning: No authentication provided, using CircleCI credentials for pulls from Docker Hub.
  image is cached as circleci/golang:1.12, but refreshing...
Error:   error starting container circleci/golang:1.12: Error response from daemon: --storage-opt is supported only for overlay over xfs with 'pquota' mount option

1.12: Pulling from circleci/golang
Digest: sha256:ae191834590b2cdee6ca9bb6985f02e05b3f9b326536f83494f788889481b408
Status: Image is up to date for circleci/golang:1.12
Error: 
Unexpected environment preparation error: Error response from daemon: --storage-opt is supported only for overlay over xfs with 'pquota' mount option

Step failed
Task failed
Error: Unhandled prepare executor error: Error response from daemon: --storage-opt is supported only for overlay over xfs with 'pquota' mount option

Hitting the same issue with:

Mac OS 11.4
Docker 20.10.7
CircleCI 0.1.15410+ba6fe81 (homebrew)

Same here.

Same issue with similar versions as above:
MacOS 10.15.5
Docker 20.10.7
CircleCI 0.1.15410

Same here:

Ubuntu 20.04
Docker 20.10.7
CircleCI 0.1.15528+45a6052 (release)

Also, docker info shows following details under storage driver:

 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false

Using circleci convenience image cimg/python:2.7

Found this article https://fabianlee.org/2020/01/15/docker-use-overlay2-with-an-xfs-backing-filesystem-to-limit-rootfs-size/
but seems involved and I’d rather not mess around with my local filesystem

Hi all.

Anyone find a resolution for this? Anything else I can do to get this issue noticed?

I was seeing the same message on ubuntu and it went away when I ran with sudo

1 Like

I spent a chunk of time debugging this today and discovered the problem. The “circleci local execute” command caches a “circleci/picard” container image locally and uses this image to run local builds.

The problem is that once it fetches this container image, it never updates it. At some point it seems we’ve all pulled a picard image that was sending bogus --storage-opts to docker.

The fix is simple: remove ~/.circleci/build_agent_settings.json and run your “circleci local execute” command again. It will fail to find the local cached version and pull the latest image, which appears to work.

If that doesn’t do it for you, you can try the same picard version I just tested locally that works. You’d set the ~/.circleci/build_agent_settings.json file content to

{"LatestSha256":"sha256:50fe208295ca3bbde6f0c0f7059806df9a9450b66fde41e296a9602e19ca3d54"}
4 Likes

This made it work for me. Deleted the file and the next build was successful. Thank you so much! I spent way too much time on this issue.