2017-10-14 8 views
2

Mein Projekt baut lokal mit Hilfe von Graddlew 4.2.1. Aber wenn ich es zum GitLab dränge, bekomme ich den Fehler unten. Ich muss Docker verwenden und ich weiß nicht, welches Docker Image ich dafür verwenden könnte. Auch ist dies der Gitlab-ci.yml:OpenJDK9 (Docker), Graddle 4.2.1, GitLab

# This file is a template, and might need editing before it works on your project. 
# This template uses the java:8 docker image because there isn't any 
# official Gradle image at this moment 
# 
# This is the Gradle build system for JVM applications 
# https://gradle.org/ 
# https://github.com/gradle/gradle 
image: openjdk:9-jdk 

# Disable the Gradle daemon for Continuous Integration servers as correctness 
# is usually a priority over speed in CI environments. Using a fresh 
# runtime for each build is more reliable since the runtime is completely 
# isolated from any previous builds. 
variables: 
    GRADLE_OPTS: "-Dorg.gradle.daemon=false" 

# Make the gradle wrapper executable. This essentially downloads a copy of 
# Gradle to build the project with. 
# https://docs.gradle.org/current/userguide/gradle_wrapper.html 
# It is expected that any modern gradle project has a wrapper 
before_script: 
    - chmod +x gradlew 

# We redirect the gradle user home using -g so that it caches the 
# wrapper and dependencies. 
# https://docs.gradle.org/current/userguide/gradle_command_line.html 
# 
# Unfortunately it also caches the build output so 
# cleaning removes reminants of any cached builds. 
# The assemble task actually builds the project. 
# If it fails here, the tests can't run. 
build: 
    stage: build 
    script: 
    - ./gradlew -g /cache/.gradle clean assemble 
    allow_failure: false 
    artifacts: 
    name: "AudioBot" 
    paths: 
     - build/libs/*.jar 

Hier den Fehler:

Exception in thread "main" javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty at java.base/sun.security.ssl.Alerts.getSSLException(Alerts.java:214) at java.base/sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1969) at java.base/sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1921) at java.base/sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1904) at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1436) at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1413) at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:567) at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185) at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1563) at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1491) at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:236) at org.gradle.wrapper.Download.downloadInternal(Download.java:66) at org.gradle.wrapper.Download.download(Download.java:51) at org.gradle.wrapper.Install$1.call(Install.java:62) at org.gradle.wrapper.Install$1.call(Install.java:48) at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:69) at org.gradle.wrapper.Install.createDist(Install.java:48) at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:107) at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61) Caused by: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty at java.base/sun.security.validator.PKIXValidator.(PKIXValidator.java:89) at java.base/sun.security.validator.Validator.getInstance(Validator.java:181) at java.base/sun.security.ssl.X509TrustManagerImpl.getValidator(X509TrustManagerImpl.java:330) at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrustedInit(X509TrustManagerImpl.java:180) at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:192) at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:133) at java.base/sun.security.ssl.ClientHandshaker.checkServerCerts(ClientHandshaker.java:1825) at java.base/sun.security.ssl.ClientHandshaker.certificateStatus(ClientHandshaker.java:1676) at java.base/sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:272) at java.base/sun.security.ssl.Handshaker.processLoop(Handshaker.java:1086) at java.base/sun.security.ssl.Handshaker.processRecord(Handshaker.java:1020) at java.base/sun.security.ssl.SSLSocketImpl.processInputRecord(SSLSocketImpl.java:1137) at java.base/sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1074) at java.base/sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973) at java.base/sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1402) at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1429) ... 14 more Caused by: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty at java.base/java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.java:200) at java.base/java.security.cert.PKIXParameters.(PKIXParameters.java:120) at java.base/java.security.cert.PKIXBuilderParameters.(PKIXBuilderParameters.java:104) at java.base/sun.security.validator.PKIXValidator.(PKIXValidator.java:86) ... 29 more ERROR: Job failed: exit code 1

Es wäre schön, wenn mir jemand helfen könnte. Vielen Dank! :)

+0

Mögliches Duplikat von [Error - trustAnchors Parameter muss nicht leer sein] (https://stackoverflow.com/questions/6784463/error-trustanchors-parameter-must-be-non-empty) – nullpointer

+0

ok, naja, aber Ich benutze Docker. Gibt es kein Docker-Image, das die erforderlichen Zertifikate für Graddlew und Java9 bereitstellen kann? –

+0

Das Build-Tool heißt ** Gradle **, nicht ** Gradlle ** – Henry

Antwort

3

Dies ist ein Fehler von vielleicht Debian im Docker-Image. Sie arbeiten daran Ich denke: https://github.com/docker-library/openjdk/issues/145

Um dies jetzt zu beheben, können Sie die jdk-9-Slim-Bilder verwenden. Füge einfach das -slim hinzu.

+0

Guter Fang. +1. Sie können Ihre eigene Antwort akzeptieren. – VonC

1

Zum Testen können Sie eine Basis auf docker-library/openjdk eine machen.

Siehe docker-library/openjdk issue 19
ca-certificates-java.postinst configure soll es sein, da PR 111, aber wenn ein anderer Ansatz in „Error - trustAnchors parameter must be non-empty“ erwähnt, können Sie es testen in Ihrem benutzerdefinierten Bild aus.

Beachten Sie, dass moby/moby issue 18180 einmal beeinflusst ca-certificates-java.postinst configure, aber sollte jetzt OK.

+0

versucht, den Befehl zur Aktualisierung der Zertifikate hinzuzufügen, aber das half nicht: http://paste.ubuntu.com/25737403/ immer noch das gleiche. irgendwelche anderen Ideen? :) –

+0

Dies hat einen Fehlerbericht: https://github.com/docker-library/openjdk/issues/145 Danke für die Hilfe! :) –