459 文字
2 分
Dockerコンテナ上でJavaで書いたコードを動かすまで

前回、Dockerを最低限動かす準備をしました。今回は、Docker上でJavaで書いたコードを動かすまでをやってみます。

Javaのコードを用意#

まずはDocker上で動かすためのJavaのコードを用意します。今回は単純にHello Worldを出力するだけの以下のコードを使います。

public class HelloWorld {
public static void main(String args[]) {
System.out.println("Hello World!!");
}
}

このJavaファイルを、Dockerfileを作成予定のディレクトリと同じディレクトリに置いておきます。

Dockerfileの作成#

ベースイメージの選択#

ベースイメージには無難にopenjdkあたりを選べばいいかと思ってましたが、以下を見るとopenjdkのイメージはdeprecatedになっているようでした。

なので今回は、openjdkのイメージからの移行先の1つとして紹介されていた以下のeclipse-temurinを利用します。

Dockerfileの記述#

Dockerfileを記述します。Dockerfileにはjavaのコンパイルや実行に関する情報も記述します。

# ベースイメージにはeclipse-temurinを利用
FROM eclipse-temurin:17.0.5_8-jdk
# 作業用のディレクトリを作成
WORKDIR /work
# ローカルのHelloWorld.javaというファイルをDockerコンテナ上の作業用ディレクトリにコピー
COPY ./HelloWorld.java /work
# コンパイル
RUN javac HelloWorld.java
# 実行
CMD java HelloWorld

これで、「ローカルのHelloWorld.javaというファイルをDocker上にコピーして、コンパイルして実行する」という処理を記述したDockerfileが完成しました。

Dockerイメージの作成 & 実行#

Dockerfileからjava17_helloworldという名前のDockerイメージを作成します。

Terminal window
$ docker build -t java17_helloworld .

作成したDockerイメージを実行します。

Terminal window
$ docker run java17_helloworld
Hello World!!

無事にJavaのコードがコンパイル、実行され、Hello World!!という文字が出力されました。

参考: