🐳

VScode + Dev Containerでホストを汚さずにGoの快適な開発環境を作る

2023/05/18に公開

はじめに

最近Goを学習しているのですが、VScodeとdevcontainerを使うとGoの開発環境を爆速で立ち上げることができたのでその方法を紹介します。
Goの拡張機能Go toolsが備わった環境なので即快適なGoの開発環境を立てたいという方におすすめです。

リポジトリ ↓
https://github.com/devshun/go-remote-container

事前条件

  1. VScodeがインストールされている
  2. Dev Containerの拡張機能がインストールされている

手順

1. devcontainer.jsonを作成

mkdir -p .devcontainer && touch $_/devcontainer.json

プロジェクト直下に.devcontainer/devcontainer.jsonを作成し、以下を記述します。

{
  "name": "Go",
  "image": "golang:1.20",
  "features": {
    "ghcr.io/devcontainers/features/go:1": {}
  }
}

devcontainer.jsonの解説

"name": "Go",

devcontainerにつける名前です。(任意なのでお好きなものを記述してください)

"image": "golang:1.20", 

devcontainerが動くベースイメージです。
Dockerfileを作らずとも、上記のように"image"として指定することができます。
今回はgolang:1.20をベースイメージに指定しています。

"features": {
    "ghcr.io/devcontainers/features/go:1": {}
  }

featuresは、devcontainerにおいてよく使われるextensionやコンテナ起動用のスクリプトをまとめたパッケージのようなものです。ghcr.io/devcontainers/features/goはGoの拡張機能とGo toolsインストールのスクリプトを内包してくれていて便利なので、今回はこちらを使用しています。

また、devcontainer.jsonに記述できるメタ情報に関してはこちらにまとめられているのでご参照ください。

2. Open folder in Containerでコンテナを起動

コマンドパレットから、> Dev containersと入力し、Open folder in Containerを選択します。

10秒ほどでdevcontainerに接続されたVScodeが起動します。

ターミナルを開き、以下のようにコマンドを打ってみると、goやstaticcheck(go tools)の機能が利用できることが確認できます。

以上で完了です。

最後に

いかがでしたでしょうか?
devcontainerを使うとホストを汚す必要がないのが非常に良いですね。
環境を誰にでも簡単に配れてしまうのも素敵です。
何か改善点などあればコメントでご指摘いただけますと幸いです。

Discussion