Oracle JDK 9をインストールしてDockerイメージを作成する手順を、ちょっとメモ。
Oracle JDK 8では、2017年にダウンロード先のURLや方法が大きく変わったようです。
[Java] OracleJDKの取得方法が大きく変わりました | Developers.IO
Oracle JDK 9について言えば、URL自体は(Oracle JDK 8の変更後に比べれば)まだ単純なようです。
CentOS
作成したDockerfileは、こんな感じ。
Dockerfile
FROM centos:7 ARG jdk_version=9.0.1 ARG jdk_build_no=11 ARG jdk_rpm=jdk-${jdk_version}_linux-x64_bin.rpm ENV JAVA_HOME /usr/java/default RUN yum install -y wget && \ wget -q \ --no-check-certificate \ --no-cookies \ --header "Cookie: oraclelicense=accept-securebackup-cookie" \ http://download.oracle.com/otn-pub/java/jdk/${jdk_version}+${jdk_build_no}/${jdk_rpm} && \ rpm -ivh ${jdk_rpm} CMD "/bin/bash"
JDK 8の頃と比べると、微妙にファイル名の形式とか変わってますね…。「_bin」とか入ってますし。
あと、JDK 8のようなハッシュ値のようなものはありませんが、JDK 8に比べるとURLの形式も微妙に異なります。
wgetを実行する時に付与するヘッダーの値などは、以前と同じようです。
ダウンロードするファイルのURLは、Oracle JDKのダウンロードサイトのリンクを見ればわかるでしょう。
http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html
なお、過去のバージョンをダウンロードする際に、Oracle JDK 8の時のように認証が必要になるかどうかは
確認していません。
確認。
# javac -version javac 9.0.1 # java -version java version "9.0.1" Java(TM) SE Runtime Environment (build 9.0.1+11) Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)
インストール場所は、「/usr/java」ディレクトリ配下になります。
# ll /usr/java/jdk-9.0.1 total 32 -rw-r--r-- 1 root root 158 Sep 28 03:51 README.html drwxr-xr-x 2 root root 4096 Jan 1 15:35 bin drwxr-xr-x 4 root root 4096 Jan 1 15:35 conf drwxr-xr-x 3 root root 4096 Jan 1 15:35 include drwxr-xr-x 2 root root 4096 Jan 1 15:36 jmods drwxr-xr-x 101 root root 4096 Jan 1 15:36 legal drwxr-xr-x 12 root root 4096 Jan 1 15:36 lib -rw-r--r-- 1 root root 1978 Sep 28 03:51 release
「/usr/java/default」や「/usr/java/latest」でも利用可能です。
# ll /usr/java/default lrwxrwxrwx 1 root root 16 Jan 1 15:36 /usr/java/default -> /usr/java/latest # ll /usr/java/latest lrwxrwxrwx 1 root root 19 Jan 1 15:36 /usr/java/latest -> /usr/java/jdk-9.0.1
Ubuntu Linux
Ubuntu Linuxの場合のDockerfile。
Dockerfile
FROM ubuntu:latest ENV JAVA_HOME /usr/lib/jvm/java-9-oracle RUN echo oracle-java9-installer shared/accepted-oracle-license-v1-1 select true | debconf-set-selections && \ apt-get update && \ apt-get install -y software-properties-common && \ add-apt-repository -y ppa:webupd8team/java && \ apt-get update && \ apt-get install -y oracle-java9-installer && \ apt-get install -y sudo \ wget \ curl \ unzip \ vim && \ apt-get clean CMD "/bin/bash"
Oracle JDK 8の時と同じように、PPAと足します。
add-apt-repository -y ppa:webupd8team/java
インストールは、「oracle-java9-installer」パッケージで行います。
apt-get install -y oracle-java9-installer
ライセンス同意あたりは、先に設定しておきましょう。
echo oracle-java9-installer shared/accepted-oracle-license-v1-1 select true | debconf-set-selections
確認。
# javac -version javac 9.0.1 # java -version java version "9.0.1" Java(TM) SE Runtime Environment (build 9.0.1+11) Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)
インストール場所は、「/usr/lib/jvm/java-9-oracle」となるようです。
# ll /usr/lib/jvm/java-9-oracle total 40 drwxr-xr-x 8 root root 4096 Jan 1 15:10 ./ drwxr-xr-x 3 root root 4096 Jan 1 15:10 ../ -r--r--r-- 1 root root 158 Jan 1 15:10 README.html drwxr-xr-x 2 root root 4096 Jan 1 15:10 bin/ drwxr-xr-x 4 root root 4096 Jan 1 15:10 conf/ drwxr-xr-x 3 root root 4096 Jan 1 15:10 include/ drwxr-xr-x 2 root root 4096 Jan 1 15:10 jmods/ drwxr-xr-x 101 root root 4096 Jan 1 15:10 legal/ drwxr-xr-x 12 root root 4096 Jan 1 15:10 lib/ -rw-r--r-- 1 root root 1978 Jan 1 15:10 release