Invalid JSON:Expected double-quoted property name in JSONat line 10, column 3
| { | |
| "name": "Yomitalk Development Environment", | |
| "build": { | |
| "dockerfile": "Dockerfile.dev", | |
| "context": ".." | |
| }, | |
| "workspaceFolder": "/app", | |
| "shutdownAction": "stopContainer", | |
| // Features to add to the dev container. More info: https://containers.dev/features. | |
| "features": { | |
| "ghcr.io/devcontainers/features/git:1": { | |
| "version": "latest", | |
| "ppa": true | |
| }, | |
| "ghcr.io/devcontainers/features/github-cli:1": { | |
| "version": "latest" | |
| }, | |
| "ghcr.io/devcontainers/features/node:1": { | |
| "version": "20" | |
| }, | |
| "ghcr.io/anthropics/devcontainer-features/claude-code:1.0": {} | |
| }, | |
| // Use 'forwardPorts' to make a list of ports inside the container available locally. | |
| "forwardPorts": [7860], | |
| "portsAttributes": { | |
| "7860": { | |
| "label": "Yomitalk Web App", | |
| "onAutoForward": "notify" | |
| } | |
| }, | |
| // Use 'postCreateCommand' to run commands after the container is created. | |
| "postCreateCommand": "bash .devcontainer/setup.sh", | |
| // Use root user since the base Dockerfile doesn't create a non-root user | |
| // "remoteUser": "root", | |
| // Override the default command to keep container running for development | |
| "overrideCommand": true, | |
| "customizations": { | |
| "vscode": { | |
| "settings": { | |
| "python.defaultInterpreterPath": "/usr/local/bin/python", | |
| "python.terminal.activateEnvironment": false, | |
| "python.linting.enabled": true, | |
| "python.linting.pylintEnabled": false, | |
| "python.linting.flake8Enabled": true, | |
| "python.linting.mypyEnabled": true, | |
| "python.formatting.provider": "black", | |
| "python.sortImports.provider": "isort", | |
| "python.testing.pytestEnabled": true, | |
| "python.testing.pytestArgs": [ | |
| "tests/" | |
| ], | |
| "editor.formatOnSave": true, | |
| "editor.codeActionsOnSave": { | |
| "source.organizeImports": "explicit" | |
| }, | |
| "files.exclude": { | |
| "**/__pycache__": true, | |
| "**/.pytest_cache": true, | |
| "**/data/temp": true, | |
| "**/data/output": true, | |
| "**/voicevox_core": true | |
| }, | |
| "git.enableCommitSigning": false, | |
| "terminal.integrated.defaultProfile.linux": "bash" | |
| }, | |
| "extensions": [ | |
| "ms-python.python", | |
| "ms-python.flake8", | |
| "ms-python.mypy-type-checker", | |
| "ms-python.black-formatter", | |
| "ms-python.isort", | |
| "ms-toolsai.jupyter", | |
| "wholroyd.jinja", | |
| "redhat.vscode-yaml", | |
| "ms-vscode.makefile-tools", | |
| "GitHub.copilot", | |
| "GitHub.copilot-chat", | |
| "ms-playwright.playwright", | |
| "ms-vscode.test-adapter-converter", | |
| "littlefoxteam.vscode-python-test-adapter", | |
| "streetsidesoftware.code-spell-checker" | |
| ] | |
| } | |
| }, | |
| // Environment variables | |
| "containerEnv": { | |
| "VOICEVOX_ACCEPT_AGREEMENT": "true", | |
| "PAGER": "cat", | |
| "LESSCHARSET": "utf-8", | |
| "E2E_TEST_MODE": "false" | |
| }, | |
| // Mounts for persistent data and source code | |
| "mounts": [ | |
| "source=${localWorkspaceFolder},target=/app,type=bind,consistency=cached", | |
| "source=yomitalk-data,target=/app/data,type=volume", | |
| "source=yomitalk-voicevox,target=/app/voicevox_core,type=volume" | |
| ] | |
| } | |