Frequently Asked Questions (FAQ)

Can I try CircleCI 2.0 while still using 1.0?

Yep! If you’re not ready to fully commit to 2.0, you can easily try it while still building on 1.0:

Create a new branch and add 2.0 configuration as described here. When you push the branch with 2.0 configuration, your project will build on CircleCI 2.0. All other branches will continue building on CircleCI 1.0.

If you’d like to completely revert to 1.0 configuration, simply replace .circleci/config.yml with a 1.0 circle.yml file.

What operating systems does CircleCI support?

Linux: CircleCI is flexible enough that you should be able to build most applications that run on Linux. These don’t have to be web applications!

iOS: Building iOS apps is not yet supported on CircleCI 2.0. Please refer to our documentation for iOS on 1.0 until 2.0 support is available.

Android: There is currently no official support for Android on CircleCI 2.0, but users have still been able to build Android apps on 2.0. This post is an excellent example of one our users successfully building an Android app on 2.0.

Note that this example does not use the emulator, so it’s not affected by incompatibility with Docker.

Windows: We do not yet support building and testing Windows applications.

Does CircleCI 2.0 run inference commands?

Currently, CircleCI 2.0 doesn’t infer anything from your project, but we have plans to replace our inference system before moving out of Beta. Until then, you’ll need to manually configure all jobs.

My project is running on CircleCI 2.0, but the build is frozen!

Builds often freeze due to syntax errors in config.yml.

Cancel the build, check your config.yml for proper indentation, and ensure that all jobs and steps have the required keys.

How do Docker image names work? Where do they come from?

CircleCI 2.0 currently supports pulling (and pushing with Docker Engine) Docker images from Docker Hub. For official images, you can pull by simply specifying the name of the image and a tag:


For public images on Docker Hub, you can pull the image by prefixing the account/team username:


Can I use the latest tag when specifying image versions?

We highly recommend that you don’t. For more context, read about why we think you should Avoid Mutable Tags.

I updated my Docker image, but my build is using a cached image. How can I invalidate the old image?

We don’t currently provide a way to invalidate cached Docker images. One way around this is to use image tags.

If you’re running a build on my-image:123 and you update the image, you can use a new tag to force a cache refresh. In this example, you could change the tag to my-image:456 and choose that image in config.yml.

Git isn’t installed on my primary image. Why did the checkout run?

If you see this message in the ‘Checkout Code’ stage of your build:

Warning: Git is not installed in the image. Falling back to CircleCI's native git client but this is still an experiment feature. We highly recommend using an image that has official Git installed.

It means that we’ve made use of go-git to do the checkout for you. Although this should be a reliable fall-back, there is currently one limitation: checking out with source caching is not supported yet. When go-git is used and a source cache is detected, you’ll see the following error in the step:

Error: source cache is detected but currently not supported by CircleCI's native Git client.

If you see the error and you’d like to keep using source caching, please use an image that has git and ssh installed.

If you notice any other unusual behavior, please reach out to support or let us know on Discuss.

How can I set the timezone in Docker images?

You can set the timezone in Docker images with the TZ environment variable. In your .circleci/config.yml, it would look like:

A sample .circleci/config.yml with a defined TZ variable would look like this:

version: 2
      - image: your/primary-image:version
      - image: mysql:5.7
           TZ: "/usr/share/zoneinfo/America/Los_Angeles"
    working_directory: ~/your-dir
      TZ: "/usr/share/zoneinfo/America/Los_Angeles"

In this example, we’re setting the timezone for both the primary image and an additional mySQL image.

A full list of available timezone options is available on Wikipedia.

Why am I getting “Enter passphrase for key ‘/root/.ssh/id_rsa’” on 2.0?

If you are getting this error: Enter passphrase for key '/root/.ssh/id_rsa': it’s likely because you need to explicitly add SSH keys added via the ‘SSH Permissions’ screen with - add_ssh_keys in .circleci/config.yml. See Configuration Reference add SSH keys for more details.