21.6 VS Code

VS Code 的 Dev Containers 可以把『開發環境』放進容器,同時保留 VS Code 的編輯、補全、除錯體驗。

本節提供一個最小可用範例:把任意專案(以 Go 為例)變成『開啟即開發』的容器化環境。

21.6.1 前置條件

  • 安裝 Docker Desktop(或 Linux 上的 Docker Engine)。
  • VS Code 安裝擴充套件:Dev Containers(ms-vscode-remote.remote-containers)。

21.6.2 最小範例:.devcontainer/devcontainer.json

在專案根目錄建立 .devcontainer/devcontainer.json

{
  "name": "docker-practice-dev",
  "image": "golang:1.26",
  "workspaceFolder": "/work",
  "workspaceMount": "source=${localWorkspaceFolder},target=/work,type=bind",
  "customizations": {
    "vscode": {
      "extensions": [
        "golang.Go"
      ]
    }
  },
  "postCreateCommand": "go version"
}

然後在 VS Code 指令面板選擇:

  • Dev Containers: Reopen in Container

VS Code 會拉取映象並啟動容器,隨後你就可以在容器內執行:

go test ./...

21.6.3 結合 Docker Compose(可選)

如果專案同時依賴資料庫/快取(例如 Postgres/Redis),可以使用 dockerComposeFile 把依賴一起拉起。

範例(devcontainer.json 片段):

{
  "name": "compose-dev",
  "dockerComposeFile": [
    "../docker-compose.yml"
  ],
  "service": "dev",
  "workspaceFolder": "/work"
}

注意:service 需要對應 compose 裡的服務名。

第 172 页,共 196 页
使用 mdPress 构建