CircleCI Images for 2.0

We have designed CircleCI 2.0 to provide faster build performance and give users greater control over their environments. Users have full control over their customized build environments and do not have to worry about their build environments being updated without their knowledge or becoming out of date.

We utilize the power of Docker to provide our users the flexibility of creating customized environments. Users can preinstall dependencies/tools in the custom images so that you can have the exact versions and releases you want in your images.

Thank you to all of 2.0 beta users for providing constructive feedback. We are listening. Based on this feedback, we have added the following two options:

  • CircleCI Images

We have created an initial set of docker images for popular languages and databases to help get users started on 2.0. These images are generally supersets of official docker images and have additional tooling for your builds and tests to successfully run on CircleCI.

We have images for the following:

Go
Node.js
Python
Ruby
MongoDB
MySQL
PostgreSQL

Many of these images have different variations. Please refer to our documentation for additional details.

  • Create your own

You can create your own custom image, upload it to a image registry (Dockerhub, Google Container Registry, Quay or Amazon ECR) and use this image with one of our executors.
Please refer our documentation for detailed instructions on creating your own custom images.

We will continue to add more features to our 2.0 platform in the coming weeks. Stay tuned for more.

If you have questions or feedback for CircleCI Images for 2.0, please do let us know by posting in comments below.

3 Likes

2 posts were split to a new topic: Need a Docker image for Bash, Git and Docker

A post was merged into an existing topic: Need a Docker image for Bash, Git and Docker

This is great! Thank you!

I have a 2.0 build wherein on the build container I really just need Bash, Docker, and Git. Is there an image somewhere on DockerHub that you can recommend?

(I tried circleci/ruby:latest and it worked well; but it makes it look like my project needs Ruby to build when it really doesnā€™t. Also sometimes apparently even the CircleCI images arenā€™t cached on the host (Iā€™m using remote docker) so Iā€™d rather use smaller images for faster builds.)

(I tried docker:git but no Bash. I tried running apk add bash in a build step but no dice ā€” I still couldnā€™t use Bashisms like [[ in my build steps. I tried deanrather/docker-docker-node-git-bash and it worked well but I donā€™t need Node.)

Thanks!

I would suggest creating your own customer image.

I would start with https://github.com/docker-library/docker/blob/bf822e2b9b4f755156b825444562c9865f22557f/17.03/git/Dockerfile and install bash.

Then I use this is the Dockerfile

# Change default shell to bash
RUN rm /bin/sh && ln -s /bin/bash /bin/sh

To make bash the default shell.

1 Like

Thank you! I will try that!

@drazisil,
Instead of using docker:17.03 as the base, we could use 17.04-git then?

FROM docker:17.04-git

# Change default shell to bash
RUN rm /bin/sh && ln -s /bin/bash /bin/sh

That is valid https://hub.docker.com/r/library/docker/tags/

Extremely disappointed at the lack of support for the Enterprise version :frowning:

Hey, Iā€™m a CircleCI engineer. Have you filed a ticket to get some help?

ticket 17702

Can the extra tools included with images get listed somewhere? The Docker Hub page lists some of them, but I canā€™t tell if itā€™s a complete list or not. For example, apparently unzip isnā€™t included in the ruby image. The answer is probably ā€œmake your own imageā€ for my case, but I imagine Iā€™m not the only one with this concern.

1 Like

+1! I opened an issue about this.

Hi,

You could improve the documentation about those images. I tried to find more info about which linux itā€™s built upon, which packages are installed and I could find nothing about them except whats on this announcement.

I donā€™t like to put my code to compile in a black box.

1 Like

Thank you everyone for providing valuable feedback.

Your comments are valid and I have communicated these to our documentation team.

1 Like

A post was split to a new topic: Dockerfiles for convenience images

I have dug around for a while and canā€™t seem to find which image the https://hub.docker.com/r/circleci/ruby/ CircleCI Ruby images are based off of. The repo says simple {{BASE IMAGE}}, so Iā€™m not able to easily read/figure out which image is used. Iā€™m guessing ā€˜jessieā€™, but I would like to know for sure.

Hi there,

Some are based on jessie, some are based on stretch, etc., depending on which tag you use:

https://hub.docker.com/r/circleci/ruby/tags

Or you can look at the Dockerfiles themselvesā€”theyā€™re available as build artifacts here:

https://circleci.com/gh/circleci/circleci-images

Thanks, hope this helps!

1 Like