{ "name": "MongoDB Development Container", "runArgs": [ "--name=mongo-dev-${containerWorkspaceFolderBasename}-${devcontainerId}" ], "initializeCommand": "${localWorkspaceFolder}/.devcontainer/initialize.sh", "build": { "dockerfile": "./Dockerfile", "context": "..", "args": { "USERNAME": "${localEnv:USER}" } }, "mounts": [ { "source": "mongo-dev-home", "target": "/home", "type": "volume" }, { "source": "engflow_auth", "target": "/home/${localEnv:USER}/.config/engflow_auth", "type": "volume" }, { "source": "${containerWorkspaceFolderBasename}-cache", "target": "/home/${localEnv:USER}/.cache", "type": "volume" }, { "source": "${containerWorkspaceFolderBasename}-python3-venv", "target": "${containerWorkspaceFolder}/python3-venv", "type": "volume" }, { "source": "${localEnv:HOME}/.ssh", "target": "/home/${localEnv:USER}/.ssh", "type": "bind", "readonly": true } ], "containerEnv": { "HOME": "/home/${localEnv:USER}" }, "remoteUser": "${localEnv:USER}", "containerUser": "${localEnv:USER}", "features": { "ghcr.io/devcontainers/features/git:1": {}, "ghcr.io/devcontainers-community/features/bazel:1": {}, "ghcr.io/devcontainers-extra/features/fzf:1": {}, "ghcr.io/devcontainers/features/docker-outside-of-docker:1": { "moby": false }, "ghcr.io/devcontainers/features/node:1": { "version": "lts" }, "ghcr.io/devcontainers/features/common-utils:2": { "username": "${localEnv:USER}" } }, "postCreateCommand": "WORKSPACE_FOLDER=${containerWorkspaceFolder} ${containerWorkspaceFolder}/.devcontainer/post-create.sh", "shutdownAction": "none", "portsAttributes": { "*": { "requireLocalPort": true } }, "customizations": { "vscode": { "settings": { "clangd.checkUpdates": true, "clangd.path": "${workspaceFolder}/buildscripts/clangd_vscode.sh", "clang-format.executable": "${workspaceRoot}/bazel-out/../../../external/mongo_toolchain_v5/v5/bin/clang-format", "prettier.prettierPath": "bazel-bin/node_modules/.aspect_rules_js/prettier@3.4.2/node_modules/prettier", "clang-tidy.executable": "buildscripts/clang_tidy_vscode.py", "editor.codeActionsOnSave": { "source.fixAll.eslint": "explicit" }, "eslint.validate": [ "javascript" ], "files.associations": { "*.idl": "yaml" }, "files.insertFinalNewline": true, "js/ts.implicitProjectConfig.target": "ES2020", "python.autoComplete.extraPaths": [ "/opt/mongodbtoolchain/v5/share/gcc-14.2.0/python" ], "python.defaultInterpreterPath": "python3-venv/bin/python", "python.analysis.extraPaths": [ "/opt/mongodbtoolchain/v5/share/gcc-14.2.0/python" ], "mypy-type-checker.path": [ "${interpreter}", "-m", "mypy" ], "mypy-type-checker.importStrategy": "fromEnvironment", "editor.defaultFormatter": "esbenp.prettier-vscode", "[c]": { "editor.defaultFormatter": "xaver.clang-format", "editor.formatOnSave": true }, "[cpp]": { "editor.defaultFormatter": "xaver.clang-format", "editor.formatOnSave": true }, "[javascript]": { "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.formatOnSave": true }, "[python]": { "editor.formatOnSaveMode": "file", "editor.formatOnSave": true, "editor.defaultFormatter": "charliermarsh.ruff" }, "[starlark]": { "editor.defaultFormatter": "BazelBuild.vscode-bazel" }, "terminal.integrated.wordSeparators": " ()[]{}',\"`─''@", "yaml.schemas": { "./buildscripts/idl/idl_schema.yml": [ "*.idl" ] }, "C_Cpp.intelliSenseEngine": "disabled" }, "extensions": [ "llvm-vs-code-extensions.vscode-clangd", "dbaeumer.vscode-eslint", "ms-python.python", "xaver.clang-format", "cs128.cs128-clang-tidy", "charliermarsh.ruff", "ms-python.mypy-type-checker", "esbenp.prettier-vscode", "redhat.vscode-yaml", "streetsidesoftware.code-spell-checker", "jasonnutter.vscode-codeowners", "bazelbuild.vscode-bazel", "rioj7.command-variable", "augustocdias.tasks-shell-input", "ms-vscode.cpptools" ] } } }