У меня есть java gradle проекты, имеющие разные версии java (8 и 11).
Все эти проекты строятся на разных конвейерах CI, но на том же сервере конвейера, где дом java указывает на java 8.
Я пишу конвейер непрерывной интеграции на jenkins для проекта, написанного на java 11.
Обычно этот проект не может быть скомпилирован на сервере конвейера CI, поскольку он использует переменную JAVA_HOME, которая указана на java 8.
Поэтому я решил построить этот проект в контейнере docker.
Я написал docker file
FROM gradle:jdk11
RUN mkdir /app
COPY . /app
WORKDIR /app
RUN chmod 755 gradlew
RUN ./gradlew clean build
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom", "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005","-jar","build/libs/MyProject-0.0.1-SNAPSHOT.jar"]
Сборка не удалась, и следующее исключение: ведение журнала
Step 6/7 : RUN ./gradlew clean build
---> Running in 635ea12aa9a4
Downloading https://services.gradle.org/distributions/gradle-6.0.1-bin.zip
[91mException in thread "main" java.net.UnknownHostException: services.gradle.org
at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:220)
at java.base/java.net.Socket.connect(Socket.java:609)
at java.base/java.net.Socket.connect(Socket.java:558)
at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:182)
at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:474)
at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:569)
at java.base/sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:341)
at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:362)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1248)
at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1187)
at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1081)
at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:1015)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1587)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1515)
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)
[0mThe command '/bin/sh -c ./gradlew clean build' returned a non-zero code: 1
Оболочка Gradle не может загрузить соответствующий дистрибутив. Я попытался изменить для DistributionUrl вместо http, а не https, но в любом случае было зарегистрировано одно и то же исключение
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=http\://services.gradle.org/distributions/gradle-6.0.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Do i Нужно изменить или добавить что-то в Dockerfile? или это что-то еще?