141 lines
5.1 KiB
JSON
141 lines
5.1 KiB
JSON
{
|
|
"name": "MongoDB Development Container",
|
|
"build": {
|
|
"dockerfile": "./Dockerfile",
|
|
"context": "..",
|
|
"args": {
|
|
"USERNAME": "${localEnv:USER}"
|
|
}
|
|
},
|
|
"mounts": [
|
|
{
|
|
"source": "engflow_auth",
|
|
"target": "/home/${localEnv:USER}/.config/engflow_auth",
|
|
"type": "volume"
|
|
},
|
|
{
|
|
"source": "${containerWorkspaceFolderBasename}-cache",
|
|
"target": "/home/${localEnv:USER}/.cache",
|
|
"type": "volume"
|
|
},
|
|
{
|
|
"source": "mongo-bashhistory",
|
|
"target": "/commandhistory",
|
|
"type": "volume"
|
|
}
|
|
],
|
|
"containerEnv": {
|
|
"HOME": "/home/${localEnv:USER}"
|
|
},
|
|
"remoteUser": "${localEnv:USER}",
|
|
"containerUser": "${localEnv:USER}",
|
|
"features": {
|
|
"./features/workstation": {},
|
|
"ghcr.io/devcontainers/features/git:1": {},
|
|
"ghcr.io/devcontainers-community/features/bazel:1": {},
|
|
"ghcr.io/devcontainers/features/docker-outside-of-docker:1": {},
|
|
"ghcr.io/devcontainers/features/node:1": {
|
|
"version": "lts"
|
|
},
|
|
"ghcr.io/devcontainers/features/common-utils:2": {
|
|
"username": "${localEnv:USER}"
|
|
}
|
|
},
|
|
"postCreateCommand": {
|
|
"fixVolumePerms": "sudo chown -R $(whoami): ${containerEnv:HOME}/.config/engflow_auth && sudo chown -R $(whoami): ${containerEnv:HOME}/.cache",
|
|
"venvActivation": "echo 'source ${containerWorkspaceFolder}/python3-venv/bin/activate && ${containerWorkspaceFolder}/buildscripts/poetry_sync.sh' >> ~/.bashrc && echo 'source ${containerWorkspaceFolder}/python3-venv/bin/activate && ${containerWorkspaceFolder}/buildscripts/poetry_sync.sh' >> ~/.zshrc;",
|
|
"createDataDir": "sudo mkdir -p /data/db && sudo chown -R $(whoami): /data/db",
|
|
"installNodeModules": "bazel run @pnpm//:pnpm -- --dir ${containerWorkspaceFolder} install",
|
|
"reportDockerServerPlatform": "echo \"\ncommon --bes_keywords=devcontainer:docker_server_platform=$(docker version --format '\"{{.Server.Platform.Name}}\"')\" >> ${containerEnv:HOME}/.bazelrc",
|
|
"reportDockerServerVersion": "echo \"\ncommon --bes_keywords=devcontainer:docker_server_version=$(docker version --format '\"{{.Server.Version}}\"')\" >> ${containerEnv:HOME}/.bazelrc",
|
|
"reportArch": "echo \"\ncommon --bes_keywords=devcontainer:arch=$(uname -i)\" >> ${containerEnv:HOME}/.bazelrc",
|
|
"fetchTags": "git fetch --tags || true"
|
|
},
|
|
"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"
|
|
]
|
|
}
|
|
}
|
|
}
|