{ "name": "CleverDatasets Dev Environment (Multi-IDE Support)", "dockerFile": "Dockerfile", "context": "..", "customizations": { "vscode": { "settings": { "python.defaultInterpreterPath": "/usr/local/bin/python", "python.linting.enabled": true, "python.linting.pylintEnabled": false, "python.linting.ruffEnabled": true, "python.formatting.provider": "none", "python.formatting.ruffEnabled": true, "editor.formatOnSave": true, "editor.codeActionsOnSave": { "source.organizeImports": "explicit" }, "python.analysis.typeCheckingMode": "basic", "python.analysis.autoImportCompletions": true, "files.exclude": { "**/__pycache__": true, "**/*.pyc": true, "**/.pytest_cache": true, "**/.nox": true }, "python.testing.pytestEnabled": true, "python.testing.unittestEnabled": false, "python.testing.nosetestsEnabled": false, "[python]": { "editor.defaultFormatter": "charliermarsh.ruff", "editor.formatOnSave": true, "editor.codeActionsOnSave": { "source.fixAll": "explicit", "source.organizeImports": "explicit" } }, "[markdown]": { "editor.wordWrap": "on" }, "terminal.integrated.defaultProfile.linux": "zsh", "terminal.integrated.profiles.linux": { "zsh": { "path": "/bin/zsh" } } }, "extensions": [ "ms-python.python", "ms-python.vscode-pylance", "charliermarsh.ruff", "ms-python.black-formatter", "ms-python.debugpy", "ms-python.isort", "ms-toolsai.jupyter", "ms-toolsai.jupyter-keymap", "ms-toolsai.jupyter-renderers", "ms-vscode.vscode-json", "redhat.vscode-yaml", "ms-vscode.makefile-tools", "eamodio.gitlens", "github.vscode-pull-request-github", "ms-vscode.remote-containers", "ms-azuretools.vscode-docker", "mkdocs.mkdocs-material", "tamasfe.even-better-toml", "ms-python.mypy-type-checker" ] }, "jetbrains": { "backend": "PyCharm", "plugins": [ "com.jetbrains.plugins.ini4idea", "com.jetbrains.plugins.yaml", "org.jetbrains.plugins.go", "com.jetbrains.plugins.kubernetes", "com.jetbrains.plugins.markdown" ] } }, "postCreateCommand": "bash -c 'cd /workspaces/datasets 2>/dev/null || cd /app 2>/dev/null || cd /workspace 2>/dev/null || true; if command -v uv &> /dev/null; then uv pip install --system -e \".[tests,docs]\" || pip install -e \".[tests,docs]\"; else pip install -e \".[tests,docs]\"; fi; python --version'", "postStartCommand": "bash -c 'if [ -f .env ] && [ -f creds.json ]; then echo \"✅ Credentials found\"; else echo \"⚠️ Missing credentials. See README for setup.\"; fi'", "remoteUser": "${localEnv:USER}", "features": { "ghcr.io/devcontainers/features/common-utils:2": { "installZsh": true, "configureZshAsDefaultShell": true, "installOhMyZsh": true, "upgradePackages": false, "username": "${localEnv:USER}", "userUid": "${localEnv:HOST_UID}", "userGid": "${localEnv:HOST_GID}" } }, "containerEnv": { "PYTHONPATH": "/workspaces/datasets/src", "PYTHONDONTWRITEBYTECODE": "1", "PYTHONUNBUFFERED": "1", "PIP_NO_CACHE_DIR": "1", "UV_CACHE_DIR": "/tmp/uv-cache", "MCP_LOG_DIR": "/home/${localEnv:USER}/.local/share/mcp-logs", "NODE_PATH": "/usr/local/lib/node_modules" }, "workspaceFolder": "/workspaces/datasets", "mounts": [ "source=datasets-uv-cache,target=/tmp/uv-cache,type=volume" ], "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" } }, "initializeCommand": "echo 'Initializing CleverDatasets Dev Environment...'", "onCreateCommand": "echo 'Creating development environment...'", "hostRequirements": { "cpus": 4, "memory": "8gb", "storage": "16gb" } }