CircleCI does have a cache in place, for docker images and a store for personal images created by the docker layer caching feature. When I run the following config.yml the whole process takes 18s
version: 2.1 # Use 2.1 to enable using orbs and other features.
jobs:
build:
docker:
- image: cimg/base:current
steps:
- checkout
- setup_remote_docker:
version: 20.10.14
docker_layer_caching: true
- run: echo "hi"
The only difference is the fact that you have details held via the docker_layer_caching statement which results in the 5.853GiB saved image download in the “Spin up environment” step.
As such the performance is being impacted by the fact that you are saving the docker image you are building for reuse. It is not clear from what you have posted if this is what you are expecting to happen. As the image is now over 13GiB in size your config.yml may be extending the image every time you are running the job