459 文字
2 分
Dockerコンテナ上でJavaで書いたコードを動かすまで
前回、Dockerを最低限動かす準備をしました。今回は、Docker上でJavaで書いたコードを動かすまでをやってみます。
MacでDockerでHello Worldするまで
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イメージを作成します。
$ docker build -t java17_helloworld .作成したDockerイメージを実行します。
$ docker run java17_helloworldHello World!!無事にJavaのコードがコンパイル、実行され、Hello World!!という文字が出力されました。
参考: