For those who don’t know, we at CircleCI maintain a fleet of Docker images, which we call Convenience Images, for various languages and databases. These images are designed to run your CI environment.
The Docker build system we are using is old and complicated so we’ve been designing a new suite of images. This of course includes a new Python image.
If you’re already using CircleCI to build/test/deploy your Python project (or want to), we’d love it if you could try out our new image. The image is cimg/python with the tag being a Python version such as 3.7.5 or 3.8.
It’s all open source so you can find the GitHub repo here and the Docker Hub repo here.
We’re looking to:
Provide a Python Docker image useful for CI.
Get feedback on if this image is working for your project or if it’s missing something or doing something “wrong” in your opinion.
Get feedback on how this image is working for you if you’re coming from our legacy image, circleci/python.
Other Public Beta Images
You can view all of the Next-Gen images that have reached public beta here.
We have been using the cimg/python:3.7 image in a lot of our pipelines and I can say that the Spin up time varies quite a lot. This has been recognized from our whole team since the time it takes goes from like 15 seconds to sometimes over 50 seconds, which is a lot.
I am sure that you guys are working hard on making this image available soon, this is just some feedback I can provide.
Unit Testing should be part of base language image
In order to support and encourage unit testing, the (default/most popular ) unit testing framework should be part of the image installation.
For example, currently cimg/python:3.8 does not have pytest installed.
Also, many testing activities other than Development also leverages the unit testing frameworks, if available.
I also see there are variants such as cimg/python-browsers, cimg/python-node etc. This variant style will be unwieldy should you choose the “test” variant as well.
@antonio Thank you for the feedback. I can’t 100% say the cause for this, but my assumption is that when it takes longer. it can be due to Docker Hub serving speed of the image and when your job runs on a CircleCI host that doesn’t already have the image cached. If it’s the latter (my theory), this issue will happen less and less and more people start to use this image.
I plan to have this Python image move out of beta and to stable/GA this month. Once that happens, I expect a large bump in users which will help this problem. Great feedback, definitely let me know if this gets worse in maybe a month or so.
@khtan If we pre-install PyTest, it definitely won’t be a variant, it’ll be part of the main image. This is good feedback and PyTest sounds like a great candidate to include. I’ll post here when I have an update for this image (will be this week).