VSCode + Docker DesktopでGo言語の開発環境を構築する

Dockerを使うと、VirtualBoxなどの仮想化ソフトウェアより手軽かつ高速に開発環境を構築できます。ここではWindows10 + WSL2 + Docker + VSCodeの構成でGo言語の開発環境を構築する手順をまとめました。

構築環境

ホストOSWindows 10 21H1(19043.1889) 64bit
WSL2
Docker Desktop4.11.1 (84025)
Visual Studio Code1.70.2

構築手順

Docker Desktopをインストール

ここの手順を参考に進めてください。

VSCodeをインストール

ここの手順を参考に進めてください。

VSCodeでGo言語用のDockerコンテナを起動

コンソールからDockerが起動していることを確認しておきます。起動してなければ起動してください。

> wsl -l -v

===================================================
  NAME                   STATE           VERSION
* Ubuntu                 Running         2
  docker-desktop         Running         2
  docker-desktop-data    Running         2

任意のフォルダを開きます。

コマンドパレットを開き(F1 or Ctrl + Shift + P)
『Remote-Containers: Add Development Configuration Files…』
 >『Show All Definitions…』
  >『Go』
   >『任意のバージョン』
    >『その他オプション』
を選択します。

開いたフォルダ内が下記構成になります。

[任意のフォルダ]
└─.devcontainer
        devcontainer.json
        Dockerfile

恐らく右下に『Folder contains a dev container configuration file. …』というダイアログが表示されると思うので、『Reopen in Container』を選択します。
ダイアログが開かなかった場合は、左下の『><』アイコンから『Open Folder in Container…』を選択し、.devcontainerフォルダの親フォルダを選択します。

少し待つとコンテナが起動します。

動作確認用のソースコードを.devcontainerフォルダと同階層に作成します。

# main.go
package main

import "fmt"

func main() {
	fmt.Println("Hello, world.")
}

実行してみます。

go run main.go

====================
Hello, world.

ビルドしたファイルを実行してみます。

go build main.go
./main

====================
Hello, world.

ブレークポイントを設定後、デバッグ(F5)してみます。