![VSCode + Docker DesktopでGo言語の開発環境を構築する](https://mitikusa-engineer.com/wp-content/uploads/2022/07/Go-1024x538.png)
Dockerを使うと、VirtualBoxなどの仮想化ソフトウェアより手軽かつ高速に開発環境を構築できます。ここではWindows10 + WSL2 + Docker + VSCodeの構成でGo言語の開発環境を構築する手順をまとめました。
構築環境
ホストOS | Windows 10 21H1(19043.1889) 64bit |
WSL | 2 |
Docker Desktop | 4.11.1 (84025) |
Visual Studio Code | 1.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
任意のフォルダを開きます。
![](https://mitikusa-engineer.com/wp-content/uploads/2022/08/WS000000-13.jpg)
コマンドパレットを開き(F1 or Ctrl + Shift + P)
『Remote-Containers: Add Development Configuration Files…』
>『Show All Definitions…』
>『Go』
>『任意のバージョン』
>『その他オプション』
を選択します。
![](https://mitikusa-engineer.com/wp-content/uploads/2022/08/WS000001-11.jpg)
![](https://mitikusa-engineer.com/wp-content/uploads/2022/08/WS000002-9.jpg)
![](https://mitikusa-engineer.com/wp-content/uploads/2022/08/WS000003-8.jpg)
![](https://mitikusa-engineer.com/wp-content/uploads/2022/08/WS000004-8.jpg)
![](https://mitikusa-engineer.com/wp-content/uploads/2022/08/WS000005-7.jpg)
![](https://mitikusa-engineer.com/wp-content/uploads/2022/08/WS000006-7.jpg)
開いたフォルダ内が下記構成になります。
[任意のフォルダ]
└─.devcontainer
devcontainer.json
Dockerfile
恐らく右下に『Folder contains a dev container configuration file. …』というダイアログが表示されると思うので、『Reopen in Container』を選択します。
ダイアログが開かなかった場合は、左下の『><』アイコンから『Open Folder in Container…』を選択し、.devcontainerフォルダの親フォルダを選択します。
![](https://mitikusa-engineer.com/wp-content/uploads/2022/08/WS000007-5.jpg)
![](https://mitikusa-engineer.com/wp-content/uploads/2022/08/WS000008-4.jpg)
少し待つとコンテナが起動します。
![](https://mitikusa-engineer.com/wp-content/uploads/2022/08/WS000009-4.jpg)
動作確認用のソースコードを.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)してみます。
![](https://mitikusa-engineer.com/wp-content/uploads/2022/08/WS000010-3.jpg)
![](https://mitikusa-engineer.com/wp-content/uploads/2022/08/WS000011-3.jpg)