-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdevcontainer.json
More file actions
102 lines (102 loc) · 4.15 KB
/
devcontainer.json
File metadata and controls
102 lines (102 loc) · 4.15 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
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
{
"name": "Crucible Development",
"runArgs": ["--name", "crucible-dev"],
"build": {
"dockerfile": "Dockerfile"
},
"features": {
"ghcr.io/devcontainers/features/common-utils:2": {
"configureZshAsDefaultShell": true
},
"ghcr.io/devcontainers/features/docker-in-docker:2": {},
"ghcr.io/devcontainers/features/dotnet:2": {
"version": "8.0"
},
"ghcr.io/devcontainers/features/node:1": {
"installYarnUsingApt": false
},
"ghcr.io/devcontainers/features/kubectl-helm-minikube:1": {
"version": "1.35",
"kubectl": "latest",
"helm": "latest"
},
"ghcr.io/devcontainers-extra/features/markdownlint-cli2:1": {},
"ghcr.io/devcontainers/features/github-cli:1": {},
"./features/aspire": {
"version": "13.1.1"
},
"ghcr.io/devcontainers/features/go:1": {},
"ghcr.io/devcontainers/features/terraform:1": {},
"ghcr.io/devcontainers-extra/features/go-task:1": {}
},
"containerEnv": {
"NUGET_PACKAGES": "/home/vscode/.nuget/packages", // this might not be needed. will try removing later.
"CLAUDE_CODE_USE_BEDROCK": "1", // vars for Claude Code using Amazon Bedrock
"AWS_REGION": "us-east-1",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "us.anthropic.claude-haiku-4-5-20251001-v1:0",
"SSL_CERT_DIR": "/usr/local/share/ca-certificates/:/etc/ssl/certs/:/home/vscode/.aspnet/dev-certs/trust/"
},
"mounts": [
// crucible repo data
"source=crucible-dev-data,target=/mnt/data/,type=volume",
// Usersecrets
"source=crucible-dev-microsoft,target=/home/vscode/.microsoft,type=volume",
// Shell history
"source=crucible-dev-shell-history,target=/home/vscode/.history,type=volume",
// AWS credentials for Claude Code (optional)
"source=${localWorkspaceFolder}/.devcontainer/.aws,target=/home/vscode/.aws,type=bind",
// Claude Code data (sessions, history, todos, etc.)
"source=crucible-dev-claude,target=/home/vscode/.claude,type=volume",
// SSH keys and config
"source=crucible-dev-ssh,target=/home/vscode/.ssh,type=volume",
// MSBuild files for local library development
"source=${localWorkspaceFolder}/.devcontainer/msbuild/Directory.Build.props,target=/mnt/data/Directory.Build.props,type=bind",
"source=${localWorkspaceFolder}/.devcontainer/msbuild/Directory.Build.targets,target=/mnt/data/Directory.Build.targets,type=bind",
// Minikube state config persists across container rebuilds
// Minikube feature uses a volume named minikube by default,
// but this conflicts if multiple containers on the system use minikube
"source=crucible-dev-minikube,target=/home/vscode/.minikube,type=volume"
],
"postCreateCommand": "bash -l .devcontainer/postcreate.sh",
"postStartCommand": "bash -l .devcontainer/poststart.sh",
"forwardPorts": [
9003, // Xdebug
443 // Minikube ingress
],
"customizations": {
"vscode": {
"extensions": [
"ms-dotnettools.csdevkit",
"ms-dotnettools.csharp",
"microsoft-aspire.aspire-vscode",
"esbenp.prettier-vscode",
"angular.ng-template",
"DavidAnson.vscode-markdownlint",
"streetsidesoftware.code-spell-checker",
"GitHub.vscode-pull-request-github",
"shardulm94.trailing-spaces",
"shd101wyy.markdown-preview-enhanced",
"pflannery.vscode-versionlens",
"Anthropic.claude-code",
"AmazonWebServices.aws-toolkit-vscode",
"bmewburn.vscode-intelephense-client",
"xdebug.php-debug"
],
"settings": {
"editor.formatOnSave": true,
"files.insertFinalNewline": true,
"files.eol": "\n",
"files.trimTrailingWhitespace": true,
"npm.packageManager": "npm",
"workbench.view.showQuietly": {
"workbench.panel.output": true // suppress C# Dev Kit output during dev container build
},
// Disable Intelephense by default to save ~337MB memory
// Enable when working on Moodle/PHP: Extensions > Intelephense > Enable (Workspace)
"intelephense.enable": false,
// Disable CloudFormation language server to save ~163MB memory (not used in this project)
"aws.cloudFormation.enable": false
}
}
}
}