Docker: Die Umgebungsvariable JENKINS_UC_DOWNLOAD scheint nicht zu funktionieren

Erstellt am 15. Aug. 2020  ·  3Kommentare  ·  Quelle: jenkinsci/docker

Ich habe die Umgebungsvariable JENKINS_UC_DOWNLOAD mit docker-compose.yml konfiguriert, aber es scheint nicht zu funktionieren.

Docker-Befehle, die Sie ausführen

docker-compose up

und die docker-compose.yml-Datei ist unten:

version: "3.7"

services:
  jenkins:
    container_name: jenkins
    image: jenkins/jenkins:2.204.6
    restart: unless-stopped
    privileged: true
    ports:
      - "8080:8080"
      - "50000:50000"
    dns:
      - 223.5.5.5
      - 8.8.8.8
    environment:
      JENKINS_UC_DOWNLOAD: "https://mirrors.tuna.tsinghua.edu.cn/jenkins"   
      JAVA_OPTS: "-Djava.awt.headless=true -Duser.timezone=Asia/Shanghai -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8"
    volumes:
      - ./jenkins_service/jenkins_certs:/certs/client
      - ./jenkins_service/jenkins_home:/var/jenkins_home
      - ./jenkins_service/jenkins_backup:/var/jenkins_backup
    deploy:
      resources:
        limits:
          memory: 2048M
          cpus: '2'
    networks:
      - jenkins_network

networks:
  jenkins_network:
    external: true

Tatsächliche Ergebnis

Das Jenkins-Download-Plugin nicht von der konfigurierten URL, sondern vom Jenkins Office Download Center.

Erwartetes Ergebnis

Das Jenkins sollte das Plugin von meiner konfigurierten URL herunterladen.

Haben Sie ein nicht angedocktes Jenkins ausprobiert und das erwartete Ergebnis erhalten?

Nein.

Ausgabe von docker version

[jenkins<strong i="21">@centos</strong> ~]$ docker  version
Client:
 Version:           18.09.5
 API version:       1.39
 Go version:        go1.10.8
 Git commit:        e8ff056
 Built:             Thu Apr 11 04:43:34 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.5
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.8
  Git commit:       e8ff056
  Built:            Thu Apr 11 04:13:40 2019
  OS/Arch:          linux/amd64
  Experimental:     false

andere wichtige Informationen

2020-08-15 01:33:02.597+0000 [id=76]    SEVERE  h.model.UpdateCenter$DownloadJob#run: Failed to install ant
java.net.SocketTimeoutException: Read timed out
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
    at java.net.SocketInputStream.read(SocketInputStream.java:171)
    at java.net.SocketInputStream.read(SocketInputStream.java:141)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
    at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:735)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:678)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:848)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:678)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1593)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1498)
    at sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:3061)
    at java.net.URLConnection.getHeaderFieldLong(URLConnection.java:629)
    at java.net.URLConnection.getContentLengthLong(URLConnection.java:501)
    at java.net.URLConnection.getContentLength(URLConnection.java:485)
    at hudson.model.UpdateCenter$UpdateCenterConfiguration.download(UpdateCenter.java:1225)
Caused: java.net.SocketTimeoutException: Read timed out
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1950)
    at sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1945)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1944)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1514)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1498)
    at hudson.model.UpdateCenter$UpdateCenterConfiguration.download(UpdateCenter.java:1241)
Caused: java.io.IOException: Failed to load http://updates.jenkins-ci.org/download/plugins/ant/1.11/ant.hpi to /var/jenkins_home/plugins/ant.jpi.tmp
    at hudson.model.UpdateCenter$UpdateCenterConfiguration.download(UpdateCenter.java:1248)
Caused: java.io.IOException: Failed to download from http://updates.jenkins-ci.org/download/plugins/ant/1.11/ant.hpi (redirected to: http://mirror.serverion.com/jenkins/plugins/ant/1.11/ant.hpi)
    at hudson.model.UpdateCenter$UpdateCenterConfiguration.download(UpdateCenter.java:1282)
    at hudson.model.UpdateCenter$DownloadJob._run(UpdateCenter.java:1830)
    at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:2101)
    at hudson.model.UpdateCenter$DownloadJob.run(UpdateCenter.java:1804)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at hudson.remoting.AtmostOneThreadExecutor$Worker.run(AtmostOneThreadExecutor.java:111)
    at java.lang.Thread.run(Thread.java:748)
2020-08-15 01:33:02.601+0000 [id=76]    INFO    h.model.UpdateCenter$DownloadJob#run: Starting the installation of ace-editor on behalf of admin

Hilfreichster Kommentar

Hallo @justyns und @Mr-LiuDC

Skript install-plugins.sh ist veraltet:
https://github.com/jenkinsci/docker/commit/bc906140bcfba9d5435b1f94dbf5e5e109791815#diff -a4d47ab66a34ee55556a6fe9980384b4cac99cd08afd4f9d882606b70c21f618

Um das Problem zu lösen:

  1. Aktualisieren Sie das Docker-Image auf die aktuelle LTS-Version (2.249.3-lts) oder eine höhere Version aus dem Repository
  2. Verwenden Sie plugin-installation-manager-tool anstelle von install-plugins.sh :

Dieses Thema kann denke ich geschlossen werden.

Alle 3 Kommentare

Ich habe das gleiche Problem.
Plugins werden von einem JENKINS_UC_DOWNLOAD verwandten Pfad heruntergeladen, aber Plugin-Abhängigkeiten werden von url="$JENKINS_UC_LATEST/latest/${plugin}.hpi" heruntergeladen
Diese URL hängt von JENKINS_UC ab (standardmäßig http://updates.jenkins-ci.org)

    jenkinsUcJson=$(curl "${CURL_OPTIONS:--sSfL}" -o /dev/null -w "%{url_effective}" "${JENKINS_UC}/update-center.json?version=${jenkinsVersion}")
    if [ -n "${jenkinsUcJson}" ]; then
        JENKINS_UC_LATEST=${jenkinsUcJson//update-center.json/}
        echo "Using version-specific update center: $JENKINS_UC_LATEST..."
    else
        JENKINS_UC_LATEST=
    fi

install-plugins.sh verwendet also JENKINS_UC , um transitive Abhängigkeiten aufzulösen, selbst wenn ich einen benutzerdefinierten JENKINS_UC_DOWNLOAD festlege.

Wir sind kürzlich auch auf das gleiche Problem gestoßen. JENKINS_UC_DOWNLOAD wird für die Plugins verwendet, die vom Benutzer angegeben werden, aber Plugin-Abhängigkeiten verwenden es nicht.

Als Problemumgehung gebe ich alle Plug-ins und Abhängigkeiten gleichzeitig an, damit „resolveDependencies“ niemals versucht, die neueste Version eines Plug-ins zu installieren.

Hallo @justyns und @Mr-LiuDC

Skript install-plugins.sh ist veraltet:
https://github.com/jenkinsci/docker/commit/bc906140bcfba9d5435b1f94dbf5e5e109791815#diff -a4d47ab66a34ee55556a6fe9980384b4cac99cd08afd4f9d882606b70c21f618

Um das Problem zu lösen:

  1. Aktualisieren Sie das Docker-Image auf die aktuelle LTS-Version (2.249.3-lts) oder eine höhere Version aus dem Repository
  2. Verwenden Sie plugin-installation-manager-tool anstelle von install-plugins.sh :

Dieses Thema kann denke ich geschlossen werden.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen