読者です 読者をやめる 読者になる 読者になる

#chiroito ’s blog

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

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

Java OracleJDK 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)

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