Kotlin

Visual Studio Code Remote Development でKotlin環境を構築

・Visual Studio Code Remote DevelopmentでKotlinの開発環境を構築

Visual Studio Code Remote Developmentは、VSCodeからServerやWSL、Containerなどに接続して接続先をワークスペースとして開発環境のように扱うことができます。
これによりローカル環境を汚さず、混ざることが無い綺麗な開発環境を構築可能になります。

今回は上記プラグインを使いKotlinの開発環境を構築する方法の紹介となります。

前提としてDockerの知識を多少必要としています。
(そこまで複雑な設定は行っていません。むしろベストプラクティスから外れています。)

なお、ローカルでのKotlin開発環境構築は下記で紹介しています。

VSCodeでKotlinの開発環境構築(Mac) ・VSCodeでKotlinの開発環境構築・Hello Worldの出力、デバッグ方法の説明 VSCodeのインストール方法は省...

Visual Studio Code Remote Developmentインストール

まずは拡張機能インストールです。
VSCodeの拡張機能から「Remote Development」と検索して「Remote Development」をインストールします。

接続設定の作成

.devcontainerフォルダ作成

VSCodeから適当にフォルダを作成します。
その後「.devcontainer」フォルダを作成します。

docker-compose.yml作成

上記「.devcontainer」フォルダの中に「docker-compose.yml」ファイルを作成します。
「docker-compose.yml」ファイルに下記を貼り付けてください。

version: '3'
services:
  test:
    image: zenika/kotlin:latest
    image: gradle
    container_name: kotlin_test3
    working_dir: /app
    volumes:
      - .:/workspace:cached
    command: /bin/sh -c "while sleep 1000; do :; done"

今回はKotlinとGradleをインストールしています。
Gradleをインストールしている理由はビルドとデバッグをVSCode内で行うためです。

「image」が複数ありますが環境構築に着目しています・・・

devcontainer.json作成

接続時の設定ファイルです。
上記で作成した「docker-compose.yml」を利用するための設定を追加しています。

{
	"name": "Existing Docker Compose (Extend)",
	"dockerComposeFile": [
		"./docker-compose.yml"
	],
	"service": "test",
	"workspaceFolder": "/workspace",
}

Remote Developmentで接続

VSCodeの左下にある緑色のボタンをクリックします。

上部に表示された状態から「Remote-Containers:Reopen in Container」を選択します。

「devcontainer.json」、「docker-compose.yml」ファイルの設定に基づいてコンテナが作成され接続します。
初回は少し時間が掛かります。

接続が完了したら下図のように左下の緑色部分が「devcontainer.json」ファイルで設定したnameが表示されます。

接続後のKotlinプロジェクト作成

接続先のKotlinプロジェクト作成はローカルと同じです。

下記記事を参考にしてもらえればVSCodeでのビルドやデバッグも可能です。

VSCodeでKotlinの開発環境構築(Mac) ・VSCodeでKotlinの開発環境構築・Hello Worldの出力、デバッグ方法の説明 VSCodeのインストール方法は省...

最後に

以上がVisual Studio Code Remote DevelopmentでKotlinの開発環境構築の説明となります。
色々な言語を学習している場合はローカル内が設定で混ざっているため、常に綺麗な開発環境が構築可能です。

ですが、そもそもKotlinでVSCodeを使うのは推奨していないです。
Kotlinで開発するなら素直にIntelliJ IDEAを使うことをオススメします。