it-swarm.com.de

Installation des Oracle-Java8-Installationsprogramms unter Docker debian: jessie

Ich versuche Java 8 über den Oracle-Java8-Installer auf einem debian: jessie Docker-Container zu installieren. Folgendes ist meine Dockerfile:

FROM debian:jessie

ENV Java_VERSION 1.8.0

RUN echo "deb http://ppa.launchpad.net/webupd8team/Java/ubuntu trusty main" > /etc/apt/sources.list.d/webupd8team-Java.list
RUN echo "deb-src http://ppa.launchpad.net/webupd8team/Java/ubuntu trusty main" >> /etc/apt/sources.list.d/webupd8team-Java.list
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886
RUN echo "debconf shared/accepted-Oracle-license-v1-1 select true" | /usr/bin/debconf-set-selections
RUN apt-get update
RUN apt-get install -y --force-yes vim
RUN apt-get install -y --force-yes Oracle-Java8-installer

Dies gibt jedoch:

Connecting to download.Oracle.com (download.Oracle.com)|23.63.224.171|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2018-01-17 12:31:05 ERROR 404: Not Found.

download failed
Oracle JDK 8 is NOT installed.
dpkg: error processing package Oracle-Java8-installer (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 Oracle-Java8-installer
E: Sub-process /usr/bin/dpkg returned an error code (1)
The command '/bin/sh -c apt-get install -y --force-yes Oracle-Java8-installer' returned a non-zero code: 100

Ich habe viele ähnliche Probleme online gefunden, aber keine der vorgeschlagenen Lösungen funktionierte für mich. Irgendeine Idee?

9
Jacopo Lanzoni

Zu donhectors Antwort und Ihrer Frage: Sie müssen die Zeichenfolgen in der Installationsdatei anstelle von Ihres letzten Befehls ersetzen:

apt-get install -y --force-yes Oracle-Java8-installer

führen Sie diese Befehle aus:

apt-get -y install Oracle-Java8-installer || true
cd /var/lib/dpkg/info

sed -i 's|Java_VERSION=8u151|Java_VERSION=8u162|' Oracle-Java8-installer.*
sed -i 's|PARTNER_URL=http://download.Oracle.com/otn-pub/Java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/|PARTNER_URL=http://download.Oracle.com/otn-pub/Java/jdk/8u162-b12/0da788060d494f5095bf8624735fa2f1/|' Oracle-Java8-installer.*
sed -i 's|SHA256SUM_TGZ="c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f"|SHA256SUM_TGZ="68ec82d47fd9c2b8eb84225b6db398a72008285fafc98631b1ff8d2229680257"|' Oracle-Java8-installer.*
sed -i 's|J_DIR=jdk1.8.0_151|J_DIR=jdk1.8.0_162|' Oracle-Java8-installer.*

apt-get install -f -y
apt-get install -y Oracle-Java8-set-default

Ich habe sie in einem separaten Skript und führe es als aus

RUN /bin/sh /path/to/script.sh

oder Sie können sie direkt von Ihrem Dockerfile ausführen, das liegt an Ihnen.

7
Martin Šuráb

Fand die Lösung unter https://hub.docker.com/r/anapsix/docker-Oracle-Java8/~/dockerfile/ :

## Java INSTALLATION
RUN echo "Oracle-Java8-installer shared/accepted-Oracle-license-v1-1 select true" | debconf-set-selections
RUN echo "deb http://ppa.launchpad.net/webupd8team/Java/ubuntu trusty main" > /etc/apt/sources.list.d/webupd8team-Java-trusty.list
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --force-yes --no-install-recommends Oracle-Java8-installer && apt-get clean all

Die "geheime Sauce", nach der Sie gesucht haben, ist die erste Zeile:

RUN echo "Oracle-Java8-installer shared/accepted-Oracle-license-v1-1 select true" | debconf-set-selections
7
Stephen Quan

Sie installieren vom webupd8 PPA-Repo aus. Wenn Sie feststellen, verweist das Java 8-Paket in diesem Repo auf die Java 8-Version 151. Dieses Paket holt die Binärdatei für 151 von den Oracle-Servern (da die Oracle-Lizenz von Oracle keine andere Person erlaubt, die die Binärdateien hostet). Oracle hat die Version 161 vor ein paar Tagen veröffentlicht und anscheinend 151 von ihren Servern verschoben oder entfernt. Grundsätzlich versucht das Paket im PPA-Repo von webupd8, die 151-Binärdatei herunterzuladen, die nicht mehr an der Stelle existiert, an der sie von webupd8 erwartet wird (daher die 404, die Sie erhalten haben). Der webupd8 PPA-Repo-Betreuer muss ein neues Paket freigeben, das auf die neuen 161-Binärdateien von Oracle verweist. Docker oder Debian spielen in dieser Ausgabe keine Rolle, es handelt sich lediglich um ein Problem mit defekten Links.

Bis dahin können Sie einen "Workaround" wie den hier genannten anwenden: JDK 8 ist NICHT installiert - Fehler 404: Nicht gefunden

Hier ist die Liste der Java-Pakete im webupd8-Repo:

https://launchpad.net/~webupd8team/+archive/ubuntu/Java/+packages

5
donhector

Siehe dpkg Oracle Jdk-Fehler bei der Installation von cassandra in Ubuntu 16.04 . Dieses Problem tritt für alle Benutzer auf, die Installationsskripte jeglicher Art verwenden.

2
DoctorPangloss

** Java 11:

RUN apt-get install wget Java-common gnupg2 -y
RUN echo "Oracle-Java11-installer shared/accepted-Oracle-license-v1-2 select true" | debconf-set-selections
RUN echo "deb http://ppa.launchpad.net/linuxuprising/Java/ubuntu bionic main" | tee /etc/apt/sources.list.d/linuxuprising-Java.list
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 73C3DB2A
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends Oracle-Java11-installer && apt-get clean all
0
rodrigoclp