New Clojure Convenience Image Preview

Hey Everyone,

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 Clojure image.

If you’re already using CircleCI to build/test/deploy your Clojure project (or want to), I would love it if you could try out our new image. The image is cimg/clojure with the tag being a Clojure version such as 1.10 or specifically 1.10.1, with Leiningen installed.

It’s all open source so you can find the GitHub repo here and the Docker Hub repo here.

We’re looking to:

  1. Provide a Clojure Docker image useful for CI.
  2. Get feedback on if this image is working for your project or if it’s missing something or doing something “wrong” in your opinion.
  3. Get feedback on how this image is working for you if you’re coming from our legacy image, circleci/clojure.

Other Preview Images

You can view all of the Next-Gen images that have reached preview here.

Any questions, please let me know, thanks!

1 Like

I’m a little concerned that the default variant of this image includes Leiningen. I don’t use Leiningen, and for at least a year or two now the default installation of Clojure via clojure.org has included/recommended using tools.deps. So I think perhaps that should be the default toolset included in the the default variant.

I have no problem with Leiningen, and there should definitely be variants of the image that include it, but I just don’t think it should be the default.

1 Like

Great feedback thank you. Do you use the current Clojure CircleCI image now?

If so, any of those projects public?

1 Like

My pleasure!

I’ve used the current images on and off in my project — for example, I was recently using them in a CI job named Scan dependencies for vulnerabilities which uses Snyk, but then I dropped down to the OpenJDK images so I could install the very latest release of Clojure to because it included a bugfix I wanted to take advantage of.

Right now most of my CI jobs that use Clojure use the OpenJDK images because I found it easier to control exactly what version of Clojure was installed, and so that I could adopt new releases of Clojure very soon after they were released.

If the new images had a tools.deps variant (whether the default or not) and if they were updated regularly to track new releases of Clojure tooling (I’d be happy to elaborate what I mean by that) then I’d happily use them for most of my CI jobs. That would make the jobs simpler, and that’s something I value greatly.

Thanks!

My two cents, but I’d still like Leiningen to be installed by default - it’s still very prevalent across the ecosystem and this would be a blocker using the new convenience images at my work. We’re using the beta images now and they’re working great.

Are there any official plans for the next generation cimg/clojure convenience image yet??

It looks like the github repo for it hasn’t been updated in 2 years, and it still only supports leiningen not tools.deps.

1 Like

Yeah, I’m getting deprecation notices and there still isn’t anything stable to move to. :grimacing:

We’ve rebooted the beta for this image. We will actively work on it until we can GA the image. Please, if you’re still interested in this image leave feedback in the new beta post here.

1 Like

The legacy Clojure image won’t be full deprecated until we get the next-gen one GA + some days. We won’t leave you without an image to go to here.

1 Like