スポンサーリンク

【Docker】Javaの実行環境を作成する

【Docker】Javaの実行環境を作成するDocker
【Docker】Javaの実行環境を作成する
スポンサーリンク

この記事ではDocker環境でJavaを作成する手順をまとめています。

前提条件

  • Docker Hubが使用できること
Docker Desktop
Docker Desktop is collaborative containerization software for developers. Get started and download Docker Desktop today on Mac, Windows, or Linux.
  • Visual Studio Codeをインストールしていること
Visual Studio Code - Code Editing. Redefined
Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.  Visual Studio Code is free and availa...
  • VSCodeの拡張機能 Dev Containersをインストールしていること
Developing inside a Container using Visual Studio Code Remote Development
Developing inside a Container using Visual Studio Code Remote Development

ディレクトリ構成

workspace
├─.devcontainer
│      devcontainer.json
│
├─docker
│      docker-compose.yml
│
└─src
    └─myapp
            Main.java

DockerでJavaの実行環境を作成する手順

1. VSCode拡張機能「Dev Containers」の設定ファイルを作成する。

2. Docker構成ファイルを作成する。

3. Javaファイルを作成する。

4. VSCode拡張機能「Dev Containers」でDockerを作成、起動、接続する。

5. Dockerコンテナ内でJavaを実行する。

VSCode拡張機能「Dev Containers」の設定ファイルを作成する

Dev Containers」を使うメリットを紹介します。

  • Dockerコマンドを使わずにDockerコンテナの作成と接続ができる。
  • Dockerコンテナ内でVSCodeの拡張機能を管理できる。

以上のように簡単な操作でDocker環境を構築することができるためかなり便利です。

それではDockerコンテナを作成するためにdevcontainer.jsonに必要なコードを書いていきましょう。

devcontainer.json
{
  "name": "java",

  "dockerComposeFile": ["../docker/docker-compose.yml"],

  "service": "java",
  "workspaceFolder": "/workspace",
  "extensions": ["vscjava.vscode-java-pack"]
}

dockerComposeFileに起動時に読み込みたいdocker-compose.ymlを指定します。

workspaceFolderに接続時の階層を指定します。

extensionsに使用したい拡張機能のIDを追加します。

Docker構成ファイルを作成する

Dockerの構成ファイルを作成します。

Docker Compose 概要 — Docker-docs-ja 19.03 ドキュメント
docker-compose.yml
version: "3"
services:
  java:
    image: eclipse-temurin:17
    container_name: javaApp
    ports:
      - 8000:8000
    tty: true
    volumes:
      - ..:/workspace:cached

imageは推奨されているJDK 「eclipse-temurin」を使用する。

ttyをtrueにすることでコンテナは常に起動し続けるようになる。

volumesはworkspace以下をマウントするように設定

eclipse-temurin

Docker HubのOpenJDKがサポート終了となっているようです。今回は「eclipse-temurin」を使用しました。

詳細は以下の引用と公式サイトを見てください。

このイメージは正式に非推奨となっており、すべてのユーザーはできるだけ早く適切な代替イメージを見つけて使用することをお勧めします。他の公式イメージの代替例のいくつか (意図的または黙示的な優先ではなく、アルファベット順にリストされています):

https://hub.docker.com/_/openjdk
openjdk - Official Image | Docker Hub
Pre-release / non-production builds of OpenJDK

Javaファイルを作成する

Main.java
package src.myapp;
class Main{
    public static void main(String[] args){
      System.out.println("Hello");
    }
  }

コンテナ内で実行してHelloが表示されたらOK

VSCode拡張機能「Dev Containers」でDockerを作成、起動、接続する

VScodeを開いたらCTRL+Pでコマンドパレットを開き「>dev containers」を入力後に「コンテナをフォルダで開く」を選択します。

少し待つとコンテナを作成後に接続してくれます。

Dockerコンテナ内でJavaを実行する

接続が完了したらデバッグしてみましょう。

VSCodeでデバッグする場合は拡張機能「Extension Pack for Java」に含まれる「Debugger for Java」を使用します。

ターミナルに「Hello」と表示されれば成功です。

https://github.com/TokutyTok/Docker/tree/develop/Java

最後に

Dockerでおすすめの書籍を紹介します。

Dockerとは何か?動く仕組みのところからイラストや図を使ってわかりやすく説明してくれます。

ハンズオンも豊富で、WordPressやMySqlのコンテナを作成していきます。

基本的なDockerの知識、コマンドはこちらの書籍で学ぶことができるため、これからDockerを学びたい初心者におすすめです。

タイトルとURLをコピーしました