circleci-public / cimg-clojure Goto Github PK
View Code? Open in Web Editor NEWThe Next-Gen CircleCI Clojure Docker Convenience Image.
Home Page: https://circleci.com/developer/images/image/cimg/clojure
License: MIT License
The Next-Gen CircleCI Clojure Docker Convenience Image.
Home Page: https://circleci.com/developer/images/image/cimg/clojure
License: MIT License
Unable to use checkout
command due to the following error:
Directory (/home/circleci/project) you are trying to checkout to is not empty and not a git repository
image used:
cimg/clojure:1.10
cimg/clojure@sha256:b1e9fd2afba5fe38743550f45fee1baf8ffc65307a4c44c818fc7ec62661fb3d
SSHing into the job (which fails at checkout which is the first step), I can see there does appear to be a file in that directory.
~/project/target/stale/leiningen.core.classpath.extract-native-dependencies
It seems these paths and the file within must be removed or relocated.
The old circleci/clojure
images with the -browsers
variation had chrome (and other browsers) installed, ready to go.
These new images make use of CircleCI Orbs, making them impractical for usage outside of CircleCI.
Another thing:
A common use case is running CLJS unit tests with Karma, requiring headless browsers, but not selenium.
So maybe additional following tags would be a good addition?
-browser-chrome ; with chrome installed
-browser-chrome-selenium ; with chrome + selenium installed
Hi,
I noticed #13 was closed. I followed the instructions in the readme with the parentSlug-parentTag but it looks like the java 8 cimg is not available or I'm doing something wrong?
I get this error
Error response from daemon: manifest for cimg/clojure:1.10.1-openjdk-8.0 not found: manifest unknown: manifest unknown
and trying to reference the image as
docker:
- image: cimg/clojure:1.10.1-openjdk-8.0
Will this image be updated some time? Clojure is now in 1.10.3 while this image is still in 1.10.1
I believe many Clojure users are starting to use babashka as a replacement for makefile (by using tasks) and as a scripting language. The cost however would be an image bigger of 80 MB.
I think it would make a great addition for this image.
JDK 21 (LTS) has been recently released. It would be greatly appreciated to have it here.
Thanks - V
Request from customer:
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!
Troubleshooting some test failures when using the cimg/clojure:1.11-openjdk-11.0-browsers
image led to discovering that the version of Nodejs is quite old
~/app $ node -v
v12.10.0
It looks like the image should download the latest LTS version based on the ALIASES file in cimg-node
cimg-clojure/1.11/node/Dockerfile
Line 9 in 891ce55
However, the version currently in that file (v16) does not match what's installed.
Hello World.
Clojure 1.11 is released!
https://clojure.org/releases/downloads#_stable_release_1_11_0_mar_22_2022
Hi,
thanks for this. I wanted to build an image based on this one but when I cloned your repository I failed building it. There is an error while verifying. I can verify when running the commands locally though.
The output on my machine is
timo@keend> ./build-images.sh ~/projects/cimg-clojure
Sending build context to Docker daemon 14.75MB
Step 1/7 : FROM cimg/openjdk:11.0
---> 0fddcc37a1f4
Step 2/7 : LABEL maintainer="Community & Partner Engineering Team <[email protected]>"
---> Using cache
---> 9a4445eae0b1
Step 3/7 : ENV LEIN_VERSION=2.9.1
---> Using cache
---> 98712bd704ed
Step 4/7 : RUN sudo curl -sSL -o /usr/local/bin/lein "https://raw.githubusercontent.com/technomancy/leiningen/${LEIN_VERSION}/bin/lein-pkg" && sudo chmod +x /usr/local/bin/lein && curl -sSL -O "https://github.com/technomancy/leiningen/releases/download/${LEIN_VERSION}/leiningen-${LEIN_VERSION}-standalone.zip" && curl -sSL -O "https://github.com/technomancy/leiningen/releases/download/${LEIN_VERSION}/leiningen-${LEIN_VERSION}-standalone.zip.asc" && mkdir -p ~/.gnupg && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf && gpg --batch --keyserver pool.sks-keyservers.net --recv-key 2B72BF956E23DE5E830D50F6002AF007D1A7CC18 && echo "Verifying Jar file signature ..." && gpg --verify leiningen-$LEIN_VERSION-standalone.zip.asc && rm leiningen-$LEIN_VERSION-standalone.zip.asc && sudo mkdir -p /usr/share/java && sudo mv leiningen-$LEIN_VERSION-standalone.zip /usr/share/java/leiningen-$LEIN_VERSION-standalone.jar
---> Running in 82decf97c599
+ sudo curl -sSL -o /usr/local/bin/lein https://raw.githubusercontent.com/technomancy/leiningen/2.9.1/bin/lein-pkg
+ sudo chmod +x /usr/local/bin/lein
+ curl -sSL -O https://github.com/technomancy/leiningen/releases/download/2.9.1/leiningen-2.9.1-standalone.zip
+ curl -sSL -O https://github.com/technomancy/leiningen/releases/download/2.9.1/leiningen-2.9.1-standalone.zip.asc
+ mkdir -p /home/circleci/.gnupg
+ echo disable-ipv6
+ gpg --batch --keyserver pool.sks-keyservers.net --recv-key 2B72BF956E23DE5E830D50F6002AF007D1A7CC18
gpg: WARNING: unsafe permissions on homedir '/home/circleci/.gnupg'
gpg: keybox '/home/circleci/.gnupg/pubring.kbx' created
gpg: key 002AF007D1A7CC18: 3 signatures not checked due to missing keys
gpg: /home/circleci/.gnupg/trustdb.gpg: trustdb created
gpg: key 002AF007D1A7CC18: public key "Phil Hagelberg <[email protected]>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1
Verifying Jar file signature ...
+ echo 'Verifying Jar file signature ...'
+ gpg --verify leiningen-2.9.1-standalone.zip.asc
gpg: WARNING: unsafe permissions on homedir '/home/circleci/.gnupg'
gpg: assuming signed data in 'leiningen-2.9.1-standalone.zip'
gpg: Signature made Fri 14 Feb 2020 09:40:05 PM UTC
gpg: using RSA key 20242BACBBE95ADA22D0AFD7808A33D379C806C3
gpg: Can't check signature: No public key
The command '/bin/bash -exo pipefail -c sudo curl -sSL -o /usr/local/bin/lein "https://raw.githubusercontent.com/technomancy/leiningen/${LEIN_VERSION}/bin/lein-pkg" && sudo chmod +x /usr/local/bin/lein && curl -sSL -O "https://github.com/technomancy/leiningen/releases/download/${LEIN_VERSION}/leiningen-${LEIN_VERSION}-standalone.zip" && curl -sSL -O "https://github.com/technomancy/leiningen/releases/download/${LEIN_VERSION}/leiningen-${LEIN_VERSION}-standalone.zip.asc" && mkdir -p ~/.gnupg && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf && gpg --batch --keyserver pool.sks-keyservers.net --recv-key 2B72BF956E23DE5E830D50F6002AF007D1A7CC18 && echo "Verifying Jar file signature ..." && gpg --verify leiningen-$LEIN_VERSION-standalone.zip.asc && rm leiningen-$LEIN_VERSION-standalone.zip.asc && sudo mkdir -p /usr/share/java && sudo mv leiningen-$LEIN_VERSION-standalone.zip /usr/share/java/leiningen-$LEIN_VERSION-standalone.jar' returned a non-zero code: 2
Default ParentTag functionality did not push the default Tags in the last respin; it was only tagged. Will need to update submodules then re-run the gen-dockerfiles script
It seems this base image is no longer supported by CircleCI, it'd be good to get confirmation to that effect.
It's now lagging behind on Clojure/JVM tooling and other base images (#52, #48) neither which have had any response or acknowledgement.
I've also tried raising this on CircleCI Discuss to no effect: https://discuss.circleci.com/t/clojure-image-support/50420.
One gotcha I found migrating from the circleci/clojure
images to the images in this repo is that JAVA_HOME/bin
isn't added to PATH
, which makes a lot of our scripts that try to run e.g. jar
fails.
We have a workaround, but it seems easy enough for backward compat to add it.
Would it be possible to update this to use a newer build of Clojure?
cimg/clojure:1.11.1
and cimg/clojure:1.11.1-openjdk-17.0
are both using Clojure 1.11.1.1105
https://github.com/CircleCI-Public/cimg-clojure/blob/main/1.11/Dockerfile#L12
However, I am seeing sporadic build errors in circleci due to a bug in Clojure. The bug appears to have been fixed in Clojure 1.11.1.1113
https://clojure.org/releases/tools#v1.11.1.1113
FWIW the exception I am seeing is
Error building classpath. class java.util.HashMap$Node cannot be cast to class java.util.HashMap$TreeNode (java.util.HashMap$Node and java.util.HashMap$TreeNode are in module java.base of loader 'bootstrap')
java.lang.ClassCastException: class java.util.HashMap$Node cannot be cast to class java.util.HashMap$TreeNode (java.util.HashMap$Node and java.util.HashMap$TreeNode are in module java.base of loader 'bootstrap')
at java.base/java.util.HashMap$TreeNode.moveRootToFront(HashMap.java:1986)
at java.base/java.util.HashMap$TreeNode.treeify(HashMap.java:2102)
at java.base/java.util.HashMap.treeifyBin(HashMap.java:770)
at java.base/java.util.HashMap.putVal(HashMap.java:642)
at java.base/java.util.HashMap.put(HashMap.java:610)
at java.base/java.util.HashSet.add(HashSet.java:221)
at org.apache.maven.model.validation.DefaultModelValidator.validateId(DefaultModelValidator.java:848)
at org.apache.maven.model.validation.DefaultModelValidator.validateEffectiveDependency(DefaultModelValidator.java:663)
at org.apache.maven.model.validation.DefaultModelValidator.validateEffectiveDependencies(DefaultModelValidator.java:584)
at org.apache.maven.model.validation.DefaultModelValidator.validateEffectiveModel(DefaultModelValidator.java:374)
at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:501)
at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:437)
at org.apache.maven.model.building.DefaultModelBuilder.importDependencyManagement(DefaultModelBuilder.java:1306)
at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:481)
at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:437)
at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:252)
at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:297)
at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:175)
at org.eclipse.aether.internal.impl.DefaultRepositorySystem.readArtifactDescriptor(DefaultRepositorySystem.java:255)
at clojure.tools.deps.alpha.extensions.maven$read_descriptor.invokeStatic(maven.clj:115)
at clojure.tools.deps.alpha.extensions.maven$fn__1128.invokeStatic(maven.clj:143)
at clojure.tools.deps.alpha.extensions.maven$fn__1128.invoke(maven.clj:143)
at clojure.lang.MultiFn.invoke(MultiFn.java:244)
at clojure.tools.deps.alpha$expand_deps$children_task__771$fn__773$fn__774.invoke(alpha.clj:405)
at clojure.tools.deps.alpha.util.concurrent$submit_task$task__479.invoke(concurrent.clj:35)
at clojure.lang.AFn.call(AFn.java:18)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
1.11.1.1113
has a fix for the issue with maven
thanks!
Describe the Feature Request
Add arm64 support.
Currently errors with this message:
Status: Downloaded newer image for cimg/clojure:1.11.1
WARNING: docker image cimg/clojure:1.11.1 targets wrong architecture (found amd64 but need [arm64 arm64v8 arm32v7 arm32v6])
Is your feature request related to a particular problem?
Add support for arm64 with docker executors
How will this feature request benefit CircleCI jobs using this image?
Enable resource_type
to be used for arm64
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.