web-dev-qa-db-ja.com

docker debian:jessieにOracle-Java8-installerをインストールする方法

Debian:jessie dockerコンテナにOracle-Java8-installerを介してJava 8をインストールしようとしています。次は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

まだこれは与えます:

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

私はオンラインで説明された同様の問題を多く見つけましたが、提案された解決策はどれもうまくいきませんでした。何か案が?

11
Jacopo Lanzoni

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

探していた「秘密のソース」が最初の行です。

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

Donhectorの応答と質問に戻ります。インストーラファイル内の文字列を置き換える必要があります代わりに最後のコマンド:

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

これらのコマンドを実行します:

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

私はそれらを別のスクリプトに入れて、次のように実行します

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

または、Dockerfileから直接実行することもできますが、それはユーザー次第です。

7
Martin Šuráb

Webupd8 PPAリポジトリからインストールしています。気づいた場合、そのリポジトリのJava 8パッケージはJava 8バージョン151を指します。このパッケージは、151のバイナリをOracleサーバーからプルします(= Javaバイナリをホストする他の人は許可されていません)。Oracleは、数日前にバージョン161をリ​​リースし、明らかにサーバーから151を移動または削除しました。 webupd8パッケージが予期する場所に存在しない151バイナリをダウンロードするには(したがって404を取得します)、webupd8 PPAリポジトリメンテナは、Oracleの新しい161バイナリを指す新しいパッケージをリリースする必要があります。問題では何の役割も果たさず、基本的にリンク切れの問題です。

それまでは、次のような「回避策」を適用できました。 JDK 8はインストールされていません-エラー404:見つかりません

Webupd8リポジトリ内のJavaパッケージのリストは次のとおりです。

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

5
donhector

dpkg Oracle Jdk error during installation cassandra を参照してください。この問題は、あらゆる種類のインストールスクリプトを使用するすべてのユーザーで発生しています。

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