VScode + Dev Containerでホストを汚さずにGoの快適な開発環境を作る
はじめに
最近Goを学習しているのですが、VScodeとdevcontainerを使うとGoの開発環境を爆速で立ち上げることができたのでその方法を紹介します。
Goの拡張機能とGo toolsが備わった環境なので即快適なGoの開発環境を立てたいという方におすすめです。
リポジトリ ↓
事前条件
- VScodeがインストールされている
- 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
に記述できるメタ情報に関してはこちらにまとめられているのでご参照ください。
Open folder in Container
でコンテナを起動
2. コマンドパレットから、> Dev containers
と入力し、Open folder in Container
を選択します。
10秒ほどでdevcontainerに接続されたVScodeが起動します。
ターミナルを開き、以下のようにコマンドを打ってみると、goやstaticcheck(go tools)の機能が利用できることが確認できます。
以上で完了です。
最後に
いかがでしたでしょうか?
devcontainerを使うとホストを汚す必要がないのが非常に良いですね。
環境を誰にでも簡単に配れてしまうのも素敵です。
何か改善点などあればコメントでご指摘いただけますと幸いです。
Discussion