#chiroito ’s blog

Java を中心とした趣味の技術について

Oracle公式Java実行環境のDockerイメージを構築

概要

Oracle 社の公式の Docker の設定ファイルが Github 上で公開されています。
github.com

設定ファイルには様々な製品の物が含まれていますが、今回はこれを使用して Oracle Java の実行環境を構築します。

作業

設定ファイルと Java のサーバランタイムをダウンロードします。次にサーバランタイムを適切な箇所に移動して、Docker イメージを作成します。最後に作成したイメージで Java が使えるか確認します。

Github から docker-images を落とします。git コマンドでも良いですし、ブラウザからZIPファイルをダウンロードも出来ます。docker-images のディレクトリを移行は IMAGES_HOME とします。

Java のサーバランタイムを次のリンクからダウンロードします。
http://www.oracle.com/technetwork/java/javase/downloads/index.htmlwww.oracle.com
サーバランタイムは Server JRE です。バージョンは今日時点での最新版である 8 update 112、プラットフォームは Linux x64 をダウンロードします。ダウンロードされるファイル名は server-jre-8u112-linux-x64.tar.gz となります。

ダウンロードしたファイルを $IMAGES_HOME/OracleJava/java-8 へ移動します。

ここまでの作業で準備完了です。$IMAGES_HOME/OracleJava/java-8 へ移動して OracleJavaのイメージを作成するシェルを実行します。
$ ./build.sh

Sending build context to Docker daemon 59.91 MB
Step 1 : FROM oraclelinux:latest
latest: Pulling from library/oraclelinux
0c333d7e75d2: Pull complete
Digest: sha256:f6cc386e1cc9d6702a67a3be885ddb70a30b0cdafc13d239f5b9ae55f76488ca
Status: Downloaded newer image for oraclelinux:latest
 ---> 4ee18f43f945
Step 2 : MAINTAINER Bruno Borges <bruno.borges@oracle.com>
 ---> Running in d72c4a866da2
 ---> 73e2c75dddd2
Removing intermediate container d72c4a866da2
Step 3 : ENV JAVA_PKG server-jre-8u*-linux-x64.tar.gz JAVA_HOME /usr/java/default
 ---> Running in 4f877a4c9d01
 ---> 9362ed2dcc29
Removing intermediate container 4f877a4c9d01
Step 4 : ADD $JAVA_PKG /usr/java/
 ---> 3a6dd166fd2f
Removing intermediate container 5c3979416bc7
Step 5 : RUN export JAVA_DIR=$(ls -1 -d /usr/java/*) &&     ln -s $JAVA_DIR /usr/java/latest &&     ln -s $JAVA_DIR /usr/java/default &&     alternatives --install /usr/bin/java java $JAVA_DIR/bin/java 20000 &&     alternatives --install /usr/bin/javac javac $JAVA_DIR/bin/javac 20000 &&     alternatives --install /usr/bin/jar jar $JAVA_DIR/bin/jar 20000
 ---> Running in eccc46eebc49
 ---> baadd9279b4b
Removing intermediate container eccc46eebc49
Successfully built baadd9279b4b

Successfully と出れば構築完了です。次は構築された Java を試すために Java のバージョンを確認するイメージを作成します。Dockerfile は次の通りです。java-8 のディレクトリには既に Dockerfile があるため別のディレクトリに移動してから Dockerfile を作りましょう。
$ vim Dockerfile

FROM oracle/serverjre:8
CMD ["java","-version"]

ビルドして Docker イメージを作成したら実行してみます
$ docker build -t jversion .

Sending build context to Docker daemon 4.096 kB
Step 1 : FROM oracle/serverjre:8
 ---> baadd9279b4b
Step 2 : CMD java -version
 ---> Running in 08ab54ae95b0
 ---> c50444f69864
Removing intermediate container 08ab54ae95b0
Successfully built c50444f69864

$ docker run -i jversion

java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)

ダウンロードしたバージョン番号が出力されているば確認完了です。次回は、実際に簡単なアプリケーションを書いて動かしてみます。