はじめに
皆さんこんにちは、@fsd-shoyaです。
Javaを学ぶために、最小構成のdevcontainerを作成しましたので、そのご紹介です。
短時間で作成出来ますので、devcontainerの作成をしたことの無い方でもご覧頂けるかと思います。
ご指摘などありましたらお知らせ頂けると幸いです。
前提条件
- WindowsのWSL2をインストール済みであること。
- Visual Studio Codeをインストール済みであること。
- WSL2上でDockerが起動できること。
事前準備
WSLへの接続
まず、WSLの拡張をインストールします。
インストールが完了したら、画面左下の><
マークをクリックし、WSLへの接続
を選択します。
画面左下の表示にWSL
と表示されていればWSLへ接続されています。
拡張機能のインストール
- Dev Containers
- Docker
実行ファイルの作成
事前準備が完了したので、実行ファイルの作成を行っていきます。
VSCode上のターミナルで作業していきます。
ディレクトリ構成
java-21-sample/
├── .devcontainer
│ └── devcontainer.json
├── docker
│ └── compose.yml
└── src
└── Main.java
ディレクトリの作成
java-21-sample/
とその直下に.devcontainer/, docker/, src/
のディレクトリを作成します。
mkdir -p ./java-21-sample/{.devcontainer,docker,src}
ファイルの作成
作成したディレクトリ内にdevcontainer.json, compose.yml, Main.java
のファイルを作成します。
touch ./java-21-sample/{.devcontainer/devcontainer.json,docker/compose.yml,src/Main.java}
devcontainer.jsonの編集
vim ./java-21-sample/.devcontainer/devcontainer.json
{
"name": "java-21-sample",
"dockerComposeFile": ["../docker/compose.yml"],
"service": "java",
"workspaceFolder": "/java-21-sample",
"extensions": ["vscjava.vscode-java-pack"]
}
compose.ymlの編集
今回は、最新のLTSであるJava21のJDKイメージを利用します。
vim ./java-21-sample/docker/compose.yml
version: "3"
services:
java:
image: openjdk:21-jdk
container_name: java-21-sample
ports:
- 8000:8000
tty: true
volumes:
- ..:/java-21-sample:cached
Main.javaの編集
vim ./java-21-sample/src/Main.java
class Main {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
devcontainerの起動
こちらの画面から、フォルダーを開く
をクリックします。
java-21-sample/
ディレクトリを選択し、OK
をクリックします
コンテナーで再度開く
をクリックします。
このように、左下に開発コンテナー
が表示されていれば、devcontainerの起動が成功しています。
Javaプログラムの実行
試しに、サンプルプログラムを実行してみましょう。
java src/Main.java
以下のような出力になれば、実行成功です。
Hello, World!
終わりに
いかがでしたでしょうか?
複雑なイメージのあるdevcontainerですが、一度手を動かして作成してみると学ぶハードルが下がるかと思います。
この記事がdevcontainerと仲良くなる一歩目になれば幸いです。