| { | |
| "name": "Data Science Web App", | |
| "build": { | |
| "dockerfile": "Dockerfile", | |
| "context": "..", | |
| "args": { | |
| "INSTALL_R": "true", | |
| "INSTALL_OPENCPU": "true", | |
| "DEV_MODE": "true" | |
| } | |
| }, | |
| "mounts": [ | |
| "source=poetry-cache,target=/app/.venv,type=volume" | |
| ], | |
| "forwardPorts": [ | |
| 7860 | |
| ], | |
| "containerEnv": { | |
| "DEV_MODE": "true" | |
| }, | |
| "postCreateCommand": "poetry lock && poetry install --no-interaction --no-ansi --with dev,data,ml,demo", | |
| "postStartCommand": "scripts/entrypoint.sh && mkdir -p ~/.vscode-server/data/Machine", | |
| "customizations": { | |
| "vscode": { | |
| "extensions": [ | |
| "ms-python.python", | |
| "ms-python.vscode-pylance", | |
| "adrianwilczynski.alpine-js-intellisense", | |
| "bradlc.vscode-tailwindcss", | |
| "tamasfe.even-better-toml", | |
| "reditorsupport.r", | |
| "wholroyd.jinja", | |
| "formulahendry.code-runner", | |
| "ms-azuretools.vscode-docker", | |
| "eamodio.gitlens", | |
| "otovo-oss.htmx-tags", | |
| "csstools.postcss", | |
| "dbaeumer.vscode-eslint", | |
| "esbenp.prettier-vscode", | |
| "samuelcolvin.jinjahtml", | |
| "monosans.djlint", | |
| "ms-toolsai.jupyter", | |
| "ms-python.black-formatter", | |
| "naumovs.color-highlight" | |
| ], | |
| "settings": { | |
| "python.defaultInterpreterPath": "/app/.venv/bin/python", | |
| "terminal.integrated.shell.linux": "/bin/bash", | |
| "python.linting.enabled": true, | |
| "python.linting.pylintEnabled": true, | |
| "python.formatting.provider": "black", | |
| "editor.formatOnSave": true, | |
| "editor.defaultFormatter": "esbenp.prettier-vscode", | |
| "[python]": { | |
| "editor.defaultFormatter": "ms-python.python" | |
| }, | |
| "editor.codeActionsOnSave": { | |
| "source.sortImports": "explicit" | |
| }, | |
| "terminal.integrated.defaultProfile.linux": "bash", | |
| "terminal.integrated.profiles.linux": { | |
| "Apache Server": { | |
| "path": "apachectl", | |
| "args": [ | |
| "-DFOREGROUND" | |
| ] | |
| }, | |
| "Uvicorn Server": { | |
| "path": "poetry run uvicorn", | |
| "args": [ | |
| "src.main:app", | |
| "--host", | |
| "0.0.0.0", | |
| "--port", | |
| "7860", | |
| "--reload", | |
| "--reload-include", | |
| "./src/", | |
| "--reload-exclude", | |
| "*.db" | |
| ] | |
| }, | |
| "Edit Demo Marimo Notebook": { | |
| "path": "poetry run marimo", | |
| "args": [ | |
| "edit", | |
| "/app/notebooks/marimo-demo.py", | |
| "--host", | |
| "0.0.0.0", | |
| "--port", | |
| "8080", | |
| "--headless" | |
| ] | |
| }, | |
| "Tailwind CSS": { | |
| "path": "/app/bin/tailwindcss", | |
| "args": [ | |
| "-i", | |
| "/app/public/styles/input.css", | |
| "-o", | |
| "/app/public/styles/output.css", | |
| "--watch=always", | |
| "--poll" | |
| ] | |
| }, | |
| "AI Digest": { | |
| "path": "npx", | |
| "args": [ | |
| "--yes", | |
| "ai-digest" | |
| ] | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "workspaceMount": "source=${localWorkspaceFolder},target=/app,type=bind,consistency=delegated", | |
| "workspaceFolder": "/app" | |
| } |