-
Notifications
You must be signed in to change notification settings - Fork 116
Expand file tree
/
Copy pathdevcontainer.json
More file actions
69 lines (58 loc) · 2.11 KB
/
Copy pathdevcontainer.json
File metadata and controls
69 lines (58 loc) · 2.11 KB
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
{
"name": "FuTuRe Remittance Platform",
"dockerComposeFile": "docker-compose.yml",
"service": "devcontainer",
"workspaceFolder": "/workspace",
// Forward ports for backend, frontend, and Storybook
"forwardPorts": [3000, 3001, 6006, 5432, 6379],
"portsAttributes": {
"3000": { "label": "Frontend (Vite)", "onAutoForward": "notify" },
"3001": { "label": "Backend (Express)", "onAutoForward": "notify" },
"6006": { "label": "Storybook", "onAutoForward": "notify" },
"5432": { "label": "PostgreSQL", "onAutoForward": "silent" },
"6379": { "label": "Redis", "onAutoForward": "silent" }
},
// Install dependencies and copy env files after the container is created
"postCreateCommand": "bash .devcontainer/post-create.sh",
// Run migrations after the container starts (db must be healthy)
"postStartCommand": "cd /workspace/backend && npx prisma migrate deploy 2>/dev/null || true",
"customizations": {
"vscode": {
"extensions": [
// JavaScript / TypeScript
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"ms-vscode.vscode-typescript-next",
// React / Tailwind
"dsznajder.es7-react-js-snippets",
// Git
"eamodio.gitlens",
"mhutchie.git-graph",
// Testing
"vitest.explorer",
// Prisma
"Prisma.prisma",
// Docker
"ms-azuretools.vscode-docker",
// General DX
"streetsidesoftware.code-spell-checker",
"EditorConfig.EditorConfig",
"usernamehw.errorlens"
],
"settings": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"eslint.workingDirectories": ["backend", "frontend"],
"typescript.tsdk": "frontend/node_modules/typescript/lib",
"terminal.integrated.defaultProfile.linux": "bash",
"files.eol": "\n",
"files.insertFinalNewline": true
}
}
},
// Container user — matches the node image's default non-root user
"remoteUser": "node"
}