Как избежать "ошибки параметров EC" с помощью образа Docker openjdk:7 и оболочки Gradle?
Этот Файл Dockerfile:
FROM openjdk:7
WORKDIR /restdocs/
RUN git clone https://github.com/spring-projects/spring-restdocs.git /restdocs
RUN git checkout v1.1.2.RELEASE
RUN ./gradlew build
Построенный с docker build . -t rest-notes
приводит к следующей ошибке:
Exception in thread "main" javax.net.ssl.SSLException: java.security.ProviderException: java.security.InvalidKeyException: EC parameters error
.
Что я могу сделать в файле Dockerfile, чтобы избежать этого и заставить работать обертку Gradle?
1 ответ:
Я смог обойти это благодаря Эриху Зайферту и его коммиту здесь: https://github.com/eseifert/gral/commit/c24e08a91952a99b8c8b686a1b172335db8cdf87 . Обновленный Dockerfile, который работает:
FROM openjdk:7 RUN apt-get update && apt-get install sudo # Fix the EC parameters error: (ref https://github.com/travis-ci/travis-ci/issues/8503) RUN sudo wget "https://bouncycastle.org/download/bcprov-ext-jdk15on-158.jar" -O "${JAVA_HOME}"/jre/lib/ext/bcprov-ext-jdk15on-158.jar && \ sudo perl -pi.bak -e 's/^(security\.provider\.)([0-9]+)/$1.($2+1)/ge' /etc/java-7-openjdk/security/java.security && \ echo "security.provider.1=org.bouncycastle.jce.provider.BouncyCastleProvider" | sudo tee -a /etc/java-7-openjdk/security/java.security WORKDIR /restdocs/ RUN git clone https://github.com/spring-projects/spring-restdocs.git /restdocs RUN git checkout v1.1.2.RELEASE RUN ./gradlew build
(неважно, что сборка этой ветви spring-restdocs завершается неудачей - это не связано с ошибкой параметров EC:)