VSC(Visual Studio Code) Dev Containers環境

Dev Containers

設定ファイル

設定ファイルは以下の通り。

.devcontainer/devcontainer.json

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/go
{
  "name": "Go",
  // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
  "image": "mcr.microsoft.com/devcontainers/go:1.22-bullseye",

  "runArgs": ["--name", "vsc_golang_base"],

  // Features to add to the dev container. More info: https://containers.dev/features.
  "features": {
    "golang": "1.22.3"
  },

  // Use 'forwardPorts' to make a list of ports inside the container available locally.
  // "forwardPorts": [],

  // Use 'postCreateCommand' to run commands after the container is created.
  // "postCreateCommand": "go version",

  // Configure tool-specific properties.
  "customizations": {
    // Configure properties specific to VS Code.
    "vscode": {
      "settings": {
        "editor.formatOnSave": true,
        "editor.formatOnSaveMode": "file",
        "[go]": {
          "editor.defaultFormatter": "golang.go"
        },
        "cSpell.enableFiletypes": ["!jsonc"]
      },
      // Add the IDs of extensions you want installed when the container is created.
      "extensions": [
        "golang.go",
        // 共通
        "esbenp.prettier-vscode",
        "mhutchie.git-graph",
        "eamodio.gitlens",
        "usernamehw.errorlens",
        "oderwat.indent-rainbow",
        "aaron-bond.better-comments",
        "streetsidesoftware.code-spell-checker"
      ]
    }
  }

  // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
  // "remoteUser": "root"
}
  • 6行目は、Dev Containerのイメージを指定
    • 指定可能なイメージは Dev Container Images に用意されているものから
    • Github で各イメージの詳細を確認
    • ここで指定しているのは GO
  • 8行目はDockerのイメージに名前をつけるため
  • 12行目でGoのバージョンを指定
  • 25-32行でVSCの設定
  • 34-45行でVSCにインストールするextensionを指定
1
2
$ go version
go version go1.22.3 linux/arm64