Files
dataset-uploader/.devcontainer/devcontainer.json

135 lines
4.4 KiB
JSON

{
"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"
}
}