devcontainer.json 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. {
  2. "name": "Kilo Code Development",
  3. "dockerFile": "Dockerfile",
  4. "context": "..",
  5. "features": {
  6. "ghcr.io/devcontainers/features/git:1": {},
  7. "ghcr.io/devcontainers/features/github-cli:1": {}
  8. },
  9. "customizations": {
  10. "vscode": {
  11. "extensions": [
  12. "dbaeumer.vscode-eslint",
  13. "esbenp.prettier-vscode",
  14. "csstools.postcss",
  15. "bradlc.vscode-tailwindcss",
  16. "connor4312.esbuild-problem-matchers",
  17. "yoavbls.pretty-ts-errors",
  18. "ms-vscode.vscode-typescript-next"
  19. ],
  20. "settings": {
  21. "terminal.integrated.defaultProfile.linux": "bash",
  22. "typescript.preferences.includePackageJsonAutoImports": "auto",
  23. "eslint.workingDirectories": ["src", "webview-ui"],
  24. "prettier.requireConfig": true,
  25. "editor.formatOnSave": true,
  26. "editor.codeActionsOnSave": {
  27. "source.fixAll.eslint": "explicit"
  28. }
  29. }
  30. }
  31. },
  32. "forwardPorts": [3000, 5173, 8080],
  33. "portsAttributes": {
  34. "3000": {
  35. "label": "Dev Server",
  36. "onAutoForward": "notify"
  37. },
  38. "5173": {
  39. "label": "Vite Dev Server",
  40. "onAutoForward": "notify"
  41. },
  42. "8080": {
  43. "label": "Other Services",
  44. "onAutoForward": "silent"
  45. }
  46. },
  47. "postCreateCommand": "bash .devcontainer/setup.sh",
  48. "postStartCommand": "echo '🚀 Kilo Code devcontainer is ready!'",
  49. "remoteUser": "root",
  50. "containerUser": "root",
  51. // Mounts for persisting Kilo Code state across container rebuilds
  52. // These mounts preserve threads, settings, and caches
  53. "mounts": [
  54. "source=${localWorkspaceFolder}/.git,target=/workspace/.git,type=bind,consistency=cached",
  55. "source=kilocode-global-storage,target=/root/.vscode-remote/data/User/globalStorage/kilocode.kilo-code,type=volume",
  56. "source=kilocode-settings,target=/root/.vscode-remote/data/User,type=volume"
  57. ],
  58. // Configure custom properties for workspace storage
  59. "workspaceMount": "source=${localWorkspaceFolder},target=/workspace,type=bind",
  60. "workspaceFolder": "/workspace"
  61. }