| { |
| "name": "Apache Superset Development", |
| // Option 1: Use pre-built image directly |
| // "image": "ghcr.io/apache/superset:devcontainer-base", |
| |
| // Option 2: Build from Dockerfile with cache (current approach) |
| "build": { |
| "dockerfile": "Dockerfile", |
| "context": ".", |
| // Cache from the Apache registry image |
| "cacheFrom": ["ghcr.io/apache/superset:devcontainer-base"] |
| }, |
| |
| "features": { |
| "ghcr.io/devcontainers/features/docker-in-docker:2": { |
| "moby": true, |
| "dockerDashComposeVersion": "v2" |
| }, |
| "ghcr.io/devcontainers/features/node:1": { |
| "version": "20" |
| }, |
| "ghcr.io/devcontainers/features/git:1": {}, |
| "ghcr.io/devcontainers/features/common-utils:2": { |
| "configureZshAsDefaultShell": true |
| }, |
| "ghcr.io/devcontainers/features/sshd:1": { |
| "version": "latest" |
| } |
| }, |
| |
| // Forward ports for development |
| "forwardPorts": [9001], |
| "portsAttributes": { |
| "9001": { |
| "label": "Superset (via Webpack Dev Server)", |
| "onAutoForward": "notify", |
| "visibility": "public" |
| } |
| }, |
| |
| // Run commands after container is created |
| "postCreateCommand": "bash .devcontainer/setup-dev.sh || echo '⚠️ Setup had issues - run .devcontainer/setup-dev.sh manually'", |
| |
| // Auto-start Superset after ensuring Docker is ready |
| // Run in foreground to see any errors, but don't block on failures |
| "postStartCommand": "bash -c 'echo \"Waiting 30s for services to initialize...\"; sleep 30; .devcontainer/start-superset.sh || echo \"⚠️ Auto-start failed - run start-superset manually\"'", |
| |
| // Set environment variables |
| "remoteEnv": { |
| // Removed automatic venv activation to prevent startup issues |
| // The setup script will handle this |
| }, |
| |
| // VS Code customizations |
| "customizations": { |
| "vscode": { |
| "extensions": [ |
| "ms-python.python", |
| "ms-python.vscode-pylance", |
| "charliermarsh.ruff", |
| "dbaeumer.vscode-eslint", |
| "esbenp.prettier-vscode" |
| ] |
| } |
| } |
| } |