1
0

初めてのdevcontainer 数分クッキング(Java 21 + WSL + VSCode + Docker)

Last updated at Posted at 2023-11-08

はじめに

皆さんこんにちは、@fsd-shoyaです。

Javaを学ぶために、最小構成のdevcontainerを作成しましたので、そのご紹介です。
短時間で作成出来ますので、devcontainerの作成をしたことの無い方でもご覧頂けるかと思います。

ご指摘などありましたらお知らせ頂けると幸いです。


前提条件

  • WindowsのWSL2をインストール済みであること。
  • Visual Studio Codeをインストール済みであること。
  • WSL2上でDockerが起動できること。

事前準備

WSLへの接続

まず、WSLの拡張をインストールします。

image.png

インストールが完了したら、画面左下の><マークをクリックし、WSLへの接続を選択します。

image.png
image.png

画面左下の表示にWSLと表示されていればWSLへ接続されています。

image.png

拡張機能のインストール

  • Dev Containers

image.png

  • Docker

image.png


実行ファイルの作成

事前準備が完了したので、実行ファイルの作成を行っていきます。

image.png

VSCode上のターミナルで作業していきます。

ディレクトリ構成

java-21-sample/
├── .devcontainer
│   └── devcontainer.json
├── docker
│   └── compose.yml
└── src
    └── Main.java

ディレクトリの作成

java-21-sample/とその直下に.devcontainer/, docker/, src/のディレクトリを作成します。

bash
mkdir -p ./java-21-sample/{.devcontainer,docker,src}

ファイルの作成

作成したディレクトリ内にdevcontainer.json, compose.yml, Main.javaのファイルを作成します。

bash
touch ./java-21-sample/{.devcontainer/devcontainer.json,docker/compose.yml,src/Main.java}

devcontainer.jsonの編集

bash
vim ./java-21-sample/.devcontainer/devcontainer.json
.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イメージを利用します。

bash
vim ./java-21-sample/docker/compose.yml
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の編集

bash
vim ./java-21-sample/src/Main.java
Main.java
class Main {
	public static void main(String[] args) {
		System.out.println("Hello, World!");
	}
}

devcontainerの起動

image.png

こちらの画面から、フォルダーを開くをクリックします。

image.png

java-21-sample/ディレクトリを選択し、OKをクリックします

image.png

コンテナーで再度開くをクリックします。

image.png

このように、左下に開発コンテナーが表示されていれば、devcontainerの起動が成功しています。


Javaプログラムの実行

試しに、サンプルプログラムを実行してみましょう。

bash
java src/Main.java

以下のような出力になれば、実行成功です。

output
Hello, World!

終わりに

いかがでしたでしょうか?
複雑なイメージのあるdevcontainerですが、一度手を動かして作成してみると学ぶハードルが下がるかと思います。
この記事がdevcontainerと仲良くなる一歩目になれば幸いです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0