{ "name": "CleverErnie Dev Environment", "dockerFile": "Dockerfile", "context": "..", // Configure tool-specific properties "customizations": { "vscode": { "settings": { "python.defaultInterpreterPath": "/usr/local/bin/python", "python.linting.enabled": true, "python.linting.ruffEnabled": true, "python.linting.pylintEnabled": false, "python.linting.flake8Enabled": false, "python.formatting.provider": "none", "python.formatting.blackProvider": "none", "[python]": { "editor.defaultFormatter": "charliermarsh.ruff", "editor.formatOnSave": true, "editor.codeActionsOnSave": { "source.organizeImports": true, "source.fixAll": true } }, "python.testing.pytestEnabled": false, "python.testing.unittestEnabled": false, "behave.language": "gherkin", "files.associations": { "*.feature": "gherkin" }, "yaml.schemas": { "https://json.schemastore.org/github-workflow.json": "/.forgejo/workflows/*.yml", "https://json.schemastore.org/helmfile.json": "/k8s/values.yaml" }, "terminal.integrated.defaultProfile.linux": "bash", "terminal.integrated.profiles.linux": { "bash": { "path": "/bin/bash", "args": ["-l"] } } }, "extensions": [ "ms-python.python", "ms-python.vscode-pylance", "charliermarsh.ruff", "ms-vscode.vscode-json", "redhat.vscode-yaml", "ms-kubernetes-tools.vscode-kubernetes-tools", "ms-vscode-remote.remote-containers", "alexkrechik.cucumberautocomplete", "stevejpurves.cucumber", "wholroyd.jinja", "ms-vscode.makefile-tools", "davidanson.vscode-markdownlint", "yzhang.markdown-all-in-one" ] } }, // Use 'postCreateCommand' to run commands after the container is created "postCreateCommand": ".devcontainer/post-create.sh", // Use 'postStartCommand' to run commands after the container starts "postStartCommand": "echo 'Welcome to your Python 3.13 development environment! 🚀'", // Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root "remoteUser": "vscode", // Features to add to the dev container "features": { "ghcr.io/devcontainers/features/common-utils:2": { "installZsh": true, "configureZshAsDefaultShell": true, "installOhMyZsh": true, "upgradePackages": true, "username": "vscode", "userUid": "1000", "userGid": "1000" }, "ghcr.io/devcontainers/features/git:1": { "ppa": true, "version": "latest" }, "ghcr.io/devcontainers/features/github-cli:1": { "installDirectlyFromGitHubRelease": true, "version": "latest" }, "ghcr.io/devcontainers/features/docker-in-docker:2": { "version": "latest", "enableNonRootDocker": "true", "moby": "true" }, "ghcr.io/devcontainers/features/kubectl-helm-minikube:1": { "version": "latest", "helm": "latest", "minikube": "none" } }, // Configure container environment "containerEnv": { "PYTHONPATH": "/app/src", "PYTHONDONTWRITEBYTECODE": "1", "PYTHONUNBUFFERED": "1", "PIP_NO_CACHE_DIR": "1", "UV_CACHE_DIR": "/tmp/uv-cache", "MCP_LOG_DIR": "/home/vscode/.local/share/mcp-logs", "NODE_PATH": "/usr/local/lib/node_modules" }, // Mounts "mounts": [ "source=${localWorkspaceFolder}/.devcontainer/bashrc-append.sh,target=/tmp/bashrc-append.sh,type=bind,consistency=cached", "source=cleverernie-uv-cache,target=/tmp/uv-cache,type=volume", "source=cleverernie-mcp-cache,target=/home/vscode/.local/share/mcp-logs,type=volume" ], // Port forwarding "forwardPorts": [8000, 8080, 3000, 9090, 3001], "portsAttributes": { "8000": { "label": "Application Server", "onAutoForward": "notify" }, "8080": { "label": "Development Server", "onAutoForward": "silent" }, "3000": { "label": "MkDocs Development Server", "onAutoForward": "notify" }, "9090": { "label": "Prometheus Server", "onAutoForward": "silent" }, "3001": { "label": "Forgejo/Gitea Server", "onAutoForward": "silent" } }, // Lifecycle scripts "initializeCommand": "echo 'Initializing CleverErnie Dev Environment...'," "onCreateCommand": "echo 'Creating development environment...'", // Resource limits (increased for MCP servers and Claude Code) "hostRequirements": { "cpus": 4, "memory": "8gb", "storage": "16gb" } }