VS Code (Visual Studio Code) のRemote Containers拡張機能をWSLやDockerと組み合わせることで、自分でDockerfileを書かなくても、開発環境コンテナをサクッと立ち上げることができます。
今回はGo言語の環境を作ってみました。
検証環境
- Windows 10 Pro
- Home でも大丈夫なはず
- Windows Subsystem for Linux 2
- Docker Desktop for Windows
- Visual Studio Code
- Remote - Containers(拡張機能)
WSL2 インストール
Docker インストール
- Docker Desktop for Windows ダウンロード&インストール
- Configuration
Enable WSL 2 Windows Features
にチェックが入っているか確認
- Configuration
-
確認
1 2 3 4 5
PS C:\> wsl -l -v NAME STATE VERSION * CentOS7 Stopped 1 docker-desktop-data Running 2 docker-desktop Running 2
VS Code拡張機能
- 拡張機能 インストール&有効化
コンテナ作成
- 任意のディレクトリをVS Codeで開く
- コマンドパレット(
F1
orCtrl+Shift+P
)Remote-Containers: Add Development Configuration Files...
Show All Definitions...
からGo
を選択- ここで別の言語を選ぶと、その言語の開発環境を作ることができる
- バージョン選択
- オプション選択
- 設定ファイルが作成される
1 2 3 4
go_test(任意のディレクトリ) └ .devcontainer ├ Dockerfile └ devcontainer.json
コンテナ起動
- ディレクトリをVS Codeで開くと、
Folder contains a dev container configuration file. ...
ダイアログが表示される Reopen in Container
をクリック- Dockerが起動していないと、エラーになります
- 初回起動時のみ、Dockerのビルドが走るため時間がかかる
- ビルド済みであれば、VS Codeが再起動し、環境が使用可能となる
Go ソースコード実行&ビルド
Hello, world.する
helloworld.go
1
2
3
4
5
6
7
package main
import "fmt"
func main() {
fmt.Println("Hello, world.")
}
実行
1
2
root ➜ /workspaces/go_test $ go run helloworld.go
Hello, world.
ビルド
1
2
3
root ➜ /workspaces/go_test $ go build helloworld.go
root ➜ /workspaces/go_test $ ./helloworld
Hello, world.