Next-Gen Clojure Convenience Image Beta

The next-gen Clojure image is now available in beta (again). The following tags are currently available:

  • cimg/clojure:1.10.3cimg/clojure:1.10

We would love your feedback on this new image during the beta phase! Some changes to this image and beta are:

  • clj and lein are installed in the same image
  • this is currently based on OpenJDK v17. Currently, we can only build on-top of one Java version. We need to determine if the majority of users for this image are okay with v17? Or should we switch back to v11?

Please either post here, or create an issue on GitHub

Here are some examples of what we are looking for:

  • Are you coming from the legacy image (circleci/clojure)? If so, how does this work for you?
    • Faster?
    • Slower?
    • Missing a feature?
    • Stability?
  • Do you need a Clojure version the beta doesn’t have yet?

As this image is in beta, it is not yet considered stable. The image is subject to change throughout the beta phase while we optimise and consider feedback.

Links:

This thread will be updated if any significant changes are made to the image.

Hi,

Many thanks for the updates to the image, and in particular for including the latest version of clojure CLI tools. I shall take it for a spin on some builds.

Regarding JDK 17; I suspect it’s ok for many of our builds, but some unfortunately still depend on JDK 8 because of a proprietary database we’re using which we’ve been installing into the images themselves. We’ve obviously been looking at migrating this, but it’s proving to be quite a big job, so will likely need a work around in the interim. My understanding is openjdk 8 will still be receiving upstream updates until 2030.

Just a small note,

I’ve tried the images on two of our very simple builds, and they worked fine there. Both of these were previously using the “official clojure image” (which isn’t actually officially from the core team; but just a community image docker have blessed).

Changing:

clojure:openjdk-11-tools-deps-1.10.3.1040-buster to cimg/clojure:1.10 worked without any other changes; though these builds were both already using tools.deps and tools.build.

As expected the switch to JDK 17 wasn’t an issue here (but is definitely an issue for other builds of ours).

I’m still not clear on the advantages of the circle images over those provided by here: GitHub - Quantisan/docker-clojure: Official Docker image for Clojure but am happy to trial them as the cost of switching is low.

Some of our other builds use shadow-cljs for compiling clojurescript; so having variants that include node would be handy; are there plans to provide any? Similarly one of our bigger builds requires chrome-webdriver to run an extensive suite of Etaoin tests, so having variants which could provide that dependency would be useful.

Are there plans for this?

Using these new images and everything seems to be fine so far. We’re currently using lein, but great to see clj support (as we will be migrating to this at some point in the next few months). We are using OpenJDK v17 in production too so it’s all working fine for us.

Hi. Thanks for picking this back up again, Circle.

Variants of the image that are based on Java 8, 11, and 17 would be really useful for us, as unfortunately we have some other components that we need to run in the container that still need Java 8. And we’d like to avoid having to maintain our own image if possible!

Hey everyone. Thanks for the feedback. The Clojure image is now GA. Please report any issues on GitHub and/or reply in that thread.

Since the beta, we’ve pre-installed Babashka into the image. The feedback regarding multiple OpenJDK versions has been heard and we will be implementing this. Please see the GA announcement for that link as well as info on the deprecation date extension.

Thank you.