File size: 3,216 Bytes
3d4a4e7 f945e3e d93a08f f945e3e 3d4a4e7 870a3d5 3d4a4e7 f945e3e 3d4a4e7 f945e3e 3d4a4e7 f945e3e 3d4a4e7 f945e3e 3d4a4e7 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | {
"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"
]
}
|