こんな方におすすめ
- プログラミング初心者の方
- Javaを勉強中の方
自分の学習記録として記事に残していきます!
プログラミングを学習している方、一緒にレベルアップしていきましょう!
✔記事の信頼性
- 元プログラミングスクール講師で100人以上の生徒を担当
- Java Silverの資格取得
- 現役エンジニア
目次
Javaの実行環境をDockerで作成する
1.ディレクトリの作成
まずは、「java-app」というディレクトリを作成します。
その中に、「srcディレクトリ」「Dockerfile」を作成します。
srcディレクトリの中には「Greeting.java」「Hello.java」を作成します。
◎コマンド一覧
mkdir java-app
cd java-app
mkdir src
touch Dockerfile
cd java-app
touch Greeting.java
touch Hello.java
2.Dockerfileの記述
次にDockerfileに使うイメージなどを設定していきます。
今回は「amazoncorretto」のイメージを使っていきます。
openjdkを使おうと思っていたのですが、使わないでみたいなのがあったので、1番上にあったamazoncorrettoを選びました。
このイメージは正式に廃止されており、すべてのユーザーは適切な代替イメージをできるだけ早く見つけて使用することをお勧めします。その他の公式イメージの代替イメージの例をいくつか示します (アルファベット順にリストされており、意図的または暗黙的な優先順位はありません)。
Dockerfileを下記で記述します。
FROM amazoncorretto:17
WORKDIR /src
COPY src/ /src/
CMD ["bash", "-c", "javac Greeting.java Hello.java && java Greeting"]
・FROM amazoncorretto:17
バージョン17のAmazon Correttoイメージを使用することを指定しています。
・WORKDIR
以降のコマンドの作業ディレクトリを /src
に設定します。
・CORY src/ /src/
ホスト側の src
ディレクトリをコンテナ側の /src
ディレクトリにコピーします。
・CMD ["bash", "-c", "javac Greeting.java Hello.java && java Greeting"]
コンテナ起動時に、Greeting.java
と Hello.java
をコンパイルし、その後 Greeting
クラスを実行します。
3.Greeting.javaとHello.javaを記述
◎Greeting.java
public class Greeting {
public static void main(String[] args) {
Hello helloInstance = new Hello();
String greeting = helloInstance.hello();
System.out.println(greeting);
}
}
◎Hello.java
public class Hello {
public String hello() {
return "Hello";
}
}
◎コード説明
GreetingでHelloインスタンスを作成し、helloメソッドを呼び出し、Helloを出力させます。
4.ビルド
Dockerfileをビルドしてイメージを作成します。イメージには「my-java-app」というタグを付けます。
docker build -t my-java-app .
5.実行
ビルドで作成した「my-java-app」イメージを指定して実行します。
docker run --rm my-java-app
◎結果
Hello
と出力されます。
後は、ファイルを修正したら「ビルド」→「実行」を繰り返せば再度プログラムを実行できます。
最後に
今回はDockerでJavaを動かせる環境を作って見ました!
自分のPCにインストールをしなくて良いので、PCをきれいに保ちたい方とかはDockerで環境を作って見てください!