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
私はオンラインで説明された同様の問題を多く見つけましたが、提案された解決策はどれもうまくいきませんでした。何か案が?
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
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から直接実行することもできますが、それはユーザー次第です。
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
dpkg Oracle Jdk error during installation cassandra を参照してください。この問題は、あらゆる種類のインストールスクリプトを使用するすべてのユーザーで発生しています。
** 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