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