{
  "name": "Docker in Docker",
  "build": {
    "dockerfile": "./Dockerfile",
    "context": "."
  },
  "features": {
    "ghcr.io/devcontainers/features/common-utils:1": {
      "installZsh": "true",
      "upgradePackages": "false",
      "uid": "1000",
      "gid": "1000",
      "installOhMyZsh": "true",
      "nonFreePackages": "true"
    },
    "ghcr.io/devcontainers/features/docker-from-docker:1": {
      "version": "latest",
      "enableNonRootDocker": "true",
      "moby": "true"
    },
    "ghcr.io/devcontainers/features/git:1": {},
    "ghcr.io/devcontainers/features/go:1": {}
  },
  // Configure tool-specific properties.
  "customizations": {
    // Configure properties specific to VS Code.
    "vscode": {
      // Set *default* container specific settings.json values on container create.
      "settings": {
        "go.toolsManagement.checkForUpdates": "local",
        "go.useLanguageServer": true,
        "go.gopath": "~/go",
        "[go]": {
          "editor.formatOnSave": true,
          "editor.codeActionsOnSave": {
            "source.organizeImports": true
          }
        },
        "go.lintTool": "golangci-lint",
        "gopls": {
          "formatting.gofumpt": true,
          "usePlaceholders": false // add parameter placeholders when completing a function
        },
        "files.eol": "\n"
      },
      // Add the IDs of extensions you want installed when the container is created.
      "extensions": [
        "golang.Go"
      ]
    }
  }
  // TODO: make this work.
  // "postStartCommand": "echo \"alias gr=\\\"go run /workspaces/lazydocker/main.go\\\"\" >> ~/.zhsrc"
}
