docker-clojure
docker-clojure copied to clipboard
Armv7 support
Is it possible to get images that provide ARM V7 support so we can build images for the raspberry pi
Typically we are limited by what upstream architectures are available (for what Java versions) for this, but there are at least a couple we don't yet build on that seem to be supported upstream more or less for every version we need: arm/v7 and ppc64le.
However, when attempting to build a tools-deps image on eclipse-temurin:17-jdk-jammy on arm/v7, I get this error when it attempts to run clojure:
#0 51.12 Error building classpath.
#0 51.12 java.lang.ExceptionInInitializerError
#0 51.12 at java.base/javax.crypto.Cipher.getInstance(Cipher.java:546)
#0 51.12 at java.base/sun.security.ssl.SSLCipher.isTransformationAvailable(SSLCipher.java:511)
#0 51.12 at java.base/sun.security.ssl.SSLCipher.<init>(SSLCipher.java:500)
#0 51.12 at java.base/sun.security.ssl.SSLCipher.<clinit>(SSLCipher.java:82)
#0 51.12 at java.base/sun.security.ssl.CipherSuite.<clinit>(CipherSuite.java:65)
#0 51.12 at java.base/sun.security.ssl.SSLContextImpl.getApplicableSupportedCipherSuites(SSLContextImpl.java:343)
#0 51.12 at java.base/sun.security.ssl.SSLContextImpl$AbstractTLSContext.<clinit>(SSLContextImpl.java:556)
#0 51.12 at java.base/java.lang.Class.forName0(Native Method)
#0 51.12 at java.base/java.lang.Class.forName(Class.java:375)
#0 51.12 at java.base/java.security.Provider$Service.getImplClass(Provider.java:1933)
#0 51.12 at java.base/java.security.Provider$Service.getDefaultConstructor(Provider.java:1964)
#0 51.12 at java.base/java.security.Provider$Service.newInstanceOf(Provider.java:1878)
#0 51.12 at java.base/java.security.Provider$Service.newInstanceUtil(Provider.java:1886)
#0 51.12 at java.base/java.security.Provider$Service.newInstance(Provider.java:1861)
#0 51.12 at java.base/sun.security.jca.GetInstance.getInstance(GetInstance.java:236)
#0 51.12 at java.base/sun.security.jca.GetInstance.getInstance(GetInstance.java:164)
#0 51.12 at java.base/javax.net.ssl.SSLContext.getInstance(SSLContext.java:185)
#0 51.13 at java.base/javax.net.ssl.SSLContext.getDefault(SSLContext.java:110)
#0 51.13 at java.base/javax.net.ssl.SSLSocketFactory.getDefault(SSLSocketFactory.java:83)
#0 51.13 at org.eclipse.aether.transport.http.GlobalState.newConnectionManager(GlobalState.java:190)
#0 51.13 at org.eclipse.aether.transport.http.GlobalState.getConnectionManager(GlobalState.java:163)
#0 51.13 at org.eclipse.aether.transport.http.LocalState.<init>(LocalState.java:69)
#0 51.13 at org.eclipse.aether.transport.http.HttpTransporter.<init>(HttpTransporter.java:151)
#0 51.13 at org.eclipse.aether.transport.http.HttpTransporterFactory.newInstance(HttpTransporterFactory.java:104)
#0 51.13 at org.eclipse.aether.internal.impl.DefaultTransporterProvider.newTransporter(DefaultTransporterProvider.java:107)
#0 51.13 at org.eclipse.aether.connector.basic.BasicRepositoryConnector.<init>(BasicRepositoryConnector.java:137)
#0 51.13 at org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory.newInstance(BasicRepositoryConnectorFactory.java:185)
#0 51.13 at org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider.newRepositoryConnector(DefaultRepositoryConnectorProvider.java:109)
#0 51.13 at org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:518)
#0 51.13 at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:408)
#0 51.13 at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:235)
#0 51.13 at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:212)
#0 51.13 at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:240)
#0 51.13 at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:171)
#0 51.13 at org.eclipse.aether.internal.impl.DefaultRepositorySystem.readArtifactDescriptor(DefaultRepositorySystem.java:263)
#0 51.13 at clojure.tools.deps.extensions.maven$read_descriptor.invokeStatic(maven.clj:115)
#0 51.13 at clojure.tools.deps.extensions.maven$fn__1164.invokeStatic(maven.clj:143)
#0 51.13 at clojure.tools.deps.extensions.maven$fn__1164.invoke(maven.clj:143)
#0 51.13 at clojure.lang.MultiFn.invoke(MultiFn.java:244)
#0 51.13 at clojure.tools.deps$expand_deps$children_task__773$fn__775$fn__776.invoke(deps.clj:405)
#0 51.13 at clojure.tools.deps.util.concurrent$submit_task$task__481.invoke(concurrent.clj:35)
#0 51.13 at clojure.lang.AFn.call(AFn.java:18)
#0 51.13 at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
#0 51.13 at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
#0 51.13 at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
#0 51.13 at java.base/java.lang.Thread.run(Thread.java:833)
#0 51.13 Caused by: java.lang.SecurityException: Can not initialize cryptographic mechanism
#0 51.13 at java.base/javax.crypto.JceSecurity.<clinit>(JceSecurity.java:119)
#0 51.13 ... 46 more
#0 51.13 Caused by: java.lang.SecurityException: Couldn't iterate through the jurisdiction policy files: unlimited
#0 51.13 at java.base/javax.crypto.JceSecurity.setupJurisdictionPolicies(JceSecurity.java:372)
#0 51.13 at java.base/javax.crypto.JceSecurity$1.run(JceSecurity.java:110)
#0 51.13 at java.base/javax.crypto.JceSecurity$1.run(JceSecurity.java:107)
#0 51.13 at java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
#0 51.13 at java.base/javax.crypto.JceSecurity.<clinit>(JceSecurity.java:106)
#0 51.13 ... 46 more