container-superposition 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (327) hide show
  1. package/README.md +843 -0
  2. package/dist/scripts/init.d.ts +3 -0
  3. package/dist/scripts/init.d.ts.map +1 -0
  4. package/dist/scripts/init.js +1190 -0
  5. package/dist/scripts/init.js.map +1 -0
  6. package/dist/scripts/migrate-to-manifests.d.ts +12 -0
  7. package/dist/scripts/migrate-to-manifests.d.ts.map +1 -0
  8. package/dist/scripts/migrate-to-manifests.js +230 -0
  9. package/dist/scripts/migrate-to-manifests.js.map +1 -0
  10. package/dist/tool/questionnaire/composer.d.ts +6 -0
  11. package/dist/tool/questionnaire/composer.d.ts.map +1 -0
  12. package/dist/tool/questionnaire/composer.js +1232 -0
  13. package/dist/tool/questionnaire/composer.js.map +1 -0
  14. package/dist/tool/readme/markdown-parser.d.ts +30 -0
  15. package/dist/tool/readme/markdown-parser.d.ts.map +1 -0
  16. package/dist/tool/readme/markdown-parser.js +139 -0
  17. package/dist/tool/readme/markdown-parser.js.map +1 -0
  18. package/dist/tool/readme/readme-generator.d.ts +9 -0
  19. package/dist/tool/readme/readme-generator.d.ts.map +1 -0
  20. package/dist/tool/readme/readme-generator.js +422 -0
  21. package/dist/tool/readme/readme-generator.js.map +1 -0
  22. package/dist/tool/schema/custom-loader.d.ts +17 -0
  23. package/dist/tool/schema/custom-loader.d.ts.map +1 -0
  24. package/dist/tool/schema/custom-loader.js +149 -0
  25. package/dist/tool/schema/custom-loader.js.map +1 -0
  26. package/dist/tool/schema/overlay-loader.d.ts +47 -0
  27. package/dist/tool/schema/overlay-loader.d.ts.map +1 -0
  28. package/dist/tool/schema/overlay-loader.js +252 -0
  29. package/dist/tool/schema/overlay-loader.js.map +1 -0
  30. package/dist/tool/schema/types.d.ts +212 -0
  31. package/dist/tool/schema/types.d.ts.map +1 -0
  32. package/dist/tool/schema/types.js +5 -0
  33. package/dist/tool/schema/types.js.map +1 -0
  34. package/docs/README.md +308 -0
  35. package/docs/architecture.md +233 -0
  36. package/docs/creating-overlays.md +549 -0
  37. package/docs/custom-patches.md +540 -0
  38. package/docs/dependencies.md +279 -0
  39. package/docs/examples/custom-patches-example.md +85 -0
  40. package/docs/examples.md +576 -0
  41. package/docs/messaging-comparison.md +265 -0
  42. package/docs/messaging-quick-start.md +385 -0
  43. package/docs/observability-workflow.md +537 -0
  44. package/docs/overlay-manifest-refactoring.md +214 -0
  45. package/docs/overlay-metadata-archive.md +54 -0
  46. package/docs/overlays.md +523 -0
  47. package/docs/presets-architecture.md +498 -0
  48. package/docs/presets.md +366 -0
  49. package/docs/publishing.md +476 -0
  50. package/docs/quick-reference.md +326 -0
  51. package/docs/ux.md +170 -0
  52. package/features/README.md +85 -0
  53. package/features/cross-distro-packages/README.md +146 -0
  54. package/features/cross-distro-packages/devcontainer-feature.json +20 -0
  55. package/features/cross-distro-packages/install.sh +58 -0
  56. package/features/local-secrets-manager/devcontainer-feature.json +18 -0
  57. package/features/local-secrets-manager/install.sh +127 -0
  58. package/features/project-scaffolder/devcontainer-feature.json +24 -0
  59. package/features/project-scaffolder/install.sh +100 -0
  60. package/features/team-conventions/devcontainer-feature.json +24 -0
  61. package/features/team-conventions/install.sh +93 -0
  62. package/overlays/.registry/README.md +14 -0
  63. package/overlays/.registry/base-images.yml +26 -0
  64. package/overlays/.registry/base-templates.yml +7 -0
  65. package/overlays/README.md +155 -0
  66. package/overlays/alertmanager/.env.example +5 -0
  67. package/overlays/alertmanager/README.md +465 -0
  68. package/overlays/alertmanager/alert-rules.yml +56 -0
  69. package/overlays/alertmanager/alertmanager.yml +42 -0
  70. package/overlays/alertmanager/devcontainer.patch.json +12 -0
  71. package/overlays/alertmanager/docker-compose.yml +20 -0
  72. package/overlays/alertmanager/overlay.yml +17 -0
  73. package/overlays/alertmanager/setup.sh +53 -0
  74. package/overlays/alertmanager/verify.sh +31 -0
  75. package/overlays/aws-cli/README.md +473 -0
  76. package/overlays/aws-cli/devcontainer.patch.json +13 -0
  77. package/overlays/aws-cli/overlay.yml +13 -0
  78. package/overlays/azure-cli/README.md +551 -0
  79. package/overlays/azure-cli/devcontainer.patch.json +8 -0
  80. package/overlays/azure-cli/overlay.yml +13 -0
  81. package/overlays/bun/README.md +312 -0
  82. package/overlays/bun/devcontainer.patch.json +41 -0
  83. package/overlays/bun/overlay.yml +16 -0
  84. package/overlays/bun/setup.sh +79 -0
  85. package/overlays/bun/verify.sh +30 -0
  86. package/overlays/codex/README.md +128 -0
  87. package/overlays/codex/devcontainer.patch.json +3 -0
  88. package/overlays/codex/overlay.yml +14 -0
  89. package/overlays/codex/setup.sh +24 -0
  90. package/overlays/codex/verify.sh +30 -0
  91. package/overlays/commitlint/README.md +333 -0
  92. package/overlays/commitlint/devcontainer.patch.json +8 -0
  93. package/overlays/commitlint/overlay.yml +16 -0
  94. package/overlays/commitlint/setup.sh +234 -0
  95. package/overlays/direnv/README.md +504 -0
  96. package/overlays/direnv/devcontainer.patch.json +6 -0
  97. package/overlays/direnv/overlay.yml +13 -0
  98. package/overlays/direnv/setup.sh +139 -0
  99. package/overlays/docker-in-docker/README.md +534 -0
  100. package/overlays/docker-in-docker/devcontainer.patch.json +10 -0
  101. package/overlays/docker-in-docker/overlay.yml +13 -0
  102. package/overlays/docker-sock/README.md +256 -0
  103. package/overlays/docker-sock/devcontainer.patch.json +9 -0
  104. package/overlays/docker-sock/docker-compose.yml +8 -0
  105. package/overlays/docker-sock/overlay.yml +13 -0
  106. package/overlays/dotnet/README.md +147 -0
  107. package/overlays/dotnet/devcontainer.patch.json +51 -0
  108. package/overlays/dotnet/global-tools.txt +24 -0
  109. package/overlays/dotnet/overlay.yml +13 -0
  110. package/overlays/dotnet/setup.sh +51 -0
  111. package/overlays/dotnet/verify.sh +26 -0
  112. package/overlays/gcloud/README.md +269 -0
  113. package/overlays/gcloud/devcontainer.patch.json +14 -0
  114. package/overlays/gcloud/overlay.yml +14 -0
  115. package/overlays/gcloud/verify.sh +52 -0
  116. package/overlays/git-helpers/README.md +168 -0
  117. package/overlays/git-helpers/devcontainer.patch.json +33 -0
  118. package/overlays/git-helpers/overlay.yml +15 -0
  119. package/overlays/git-helpers/setup.sh +91 -0
  120. package/overlays/go/README.md +293 -0
  121. package/overlays/go/devcontainer.patch.json +43 -0
  122. package/overlays/go/overlay.yml +15 -0
  123. package/overlays/go/setup.sh +33 -0
  124. package/overlays/go/verify.sh +40 -0
  125. package/overlays/grafana/.env.example +9 -0
  126. package/overlays/grafana/README.md +462 -0
  127. package/overlays/grafana/dashboard-provider.yml +11 -0
  128. package/overlays/grafana/dashboards/observability-overview.json +263 -0
  129. package/overlays/grafana/devcontainer.patch.json +12 -0
  130. package/overlays/grafana/docker-compose.yml +27 -0
  131. package/overlays/grafana/grafana-datasources.yml +57 -0
  132. package/overlays/grafana/overlay.yml +21 -0
  133. package/overlays/grafana/verify.sh +34 -0
  134. package/overlays/jaeger/.env.example +7 -0
  135. package/overlays/jaeger/README.md +867 -0
  136. package/overlays/jaeger/devcontainer.patch.json +12 -0
  137. package/overlays/jaeger/docker-compose.yml +17 -0
  138. package/overlays/jaeger/overlay.yml +19 -0
  139. package/overlays/java/README.md +267 -0
  140. package/overlays/java/devcontainer.patch.json +44 -0
  141. package/overlays/java/overlay.yml +16 -0
  142. package/overlays/java/setup.sh +41 -0
  143. package/overlays/java/verify.sh +42 -0
  144. package/overlays/just/README.md +443 -0
  145. package/overlays/just/devcontainer.patch.json +3 -0
  146. package/overlays/just/overlay.yml +13 -0
  147. package/overlays/just/setup.sh +182 -0
  148. package/overlays/kubectl-helm/README.md +660 -0
  149. package/overlays/kubectl-helm/devcontainer.patch.json +10 -0
  150. package/overlays/kubectl-helm/overlay.yml +13 -0
  151. package/overlays/loki/.env.example +5 -0
  152. package/overlays/loki/README.md +1156 -0
  153. package/overlays/loki/devcontainer.patch.json +12 -0
  154. package/overlays/loki/docker-compose.yml +18 -0
  155. package/overlays/loki/loki-config.yaml +45 -0
  156. package/overlays/loki/overlay.yml +17 -0
  157. package/overlays/minio/.env.example +9 -0
  158. package/overlays/minio/README.md +639 -0
  159. package/overlays/minio/devcontainer.patch.json +30 -0
  160. package/overlays/minio/docker-compose.yml +28 -0
  161. package/overlays/minio/overlay.yml +18 -0
  162. package/overlays/minio/setup.sh +61 -0
  163. package/overlays/minio/verify.sh +64 -0
  164. package/overlays/mkdocs/README.md +309 -0
  165. package/overlays/mkdocs/devcontainer.patch.json +24 -0
  166. package/overlays/mkdocs/overlay.yml +15 -0
  167. package/overlays/modern-cli-tools/README.md +556 -0
  168. package/overlays/modern-cli-tools/devcontainer.patch.json +3 -0
  169. package/overlays/modern-cli-tools/overlay.yml +13 -0
  170. package/overlays/modern-cli-tools/setup.sh +153 -0
  171. package/overlays/mongodb/.env.example +9 -0
  172. package/overlays/mongodb/README.md +481 -0
  173. package/overlays/mongodb/devcontainer.patch.json +32 -0
  174. package/overlays/mongodb/docker-compose.yml +44 -0
  175. package/overlays/mongodb/overlay.yml +17 -0
  176. package/overlays/mongodb/verify.sh +48 -0
  177. package/overlays/mysql/.env.example +11 -0
  178. package/overlays/mysql/README.md +542 -0
  179. package/overlays/mysql/devcontainer.patch.json +34 -0
  180. package/overlays/mysql/docker-compose.yml +55 -0
  181. package/overlays/mysql/overlay.yml +16 -0
  182. package/overlays/mysql/verify.sh +48 -0
  183. package/overlays/nats/.env.example +5 -0
  184. package/overlays/nats/README.md +762 -0
  185. package/overlays/nats/devcontainer.patch.json +24 -0
  186. package/overlays/nats/docker-compose.yml +31 -0
  187. package/overlays/nats/overlay.yml +18 -0
  188. package/overlays/nats/verify.sh +50 -0
  189. package/overlays/ngrok/README.md +503 -0
  190. package/overlays/ngrok/devcontainer.patch.json +3 -0
  191. package/overlays/ngrok/overlay.yml +14 -0
  192. package/overlays/ngrok/setup.sh +125 -0
  193. package/overlays/nodejs/README.md +192 -0
  194. package/overlays/nodejs/devcontainer.patch.json +49 -0
  195. package/overlays/nodejs/global-packages.txt +16 -0
  196. package/overlays/nodejs/overlay.yml +14 -0
  197. package/overlays/nodejs/setup.sh +46 -0
  198. package/overlays/nodejs/verify.sh +32 -0
  199. package/overlays/otel-collector/.env.example +9 -0
  200. package/overlays/otel-collector/README.md +1257 -0
  201. package/overlays/otel-collector/devcontainer.patch.json +28 -0
  202. package/overlays/otel-collector/docker-compose.yml +22 -0
  203. package/overlays/otel-collector/otel-collector-config.yaml +68 -0
  204. package/overlays/otel-collector/overlay.yml +21 -0
  205. package/overlays/otel-collector/setup.sh +49 -0
  206. package/overlays/otel-demo-nodejs/.env.example +2 -0
  207. package/overlays/otel-demo-nodejs/Dockerfile-otel-demo-nodejs +17 -0
  208. package/overlays/otel-demo-nodejs/README.md +409 -0
  209. package/overlays/otel-demo-nodejs/devcontainer.patch.json +12 -0
  210. package/overlays/otel-demo-nodejs/docker-compose.yml +19 -0
  211. package/overlays/otel-demo-nodejs/overlay.yml +23 -0
  212. package/overlays/otel-demo-nodejs/package-otel-demo-nodejs.json +20 -0
  213. package/overlays/otel-demo-nodejs/server-otel-demo-nodejs.js +259 -0
  214. package/overlays/otel-demo-nodejs/tracing-otel-demo-nodejs.js +57 -0
  215. package/overlays/otel-demo-nodejs/verify.sh +31 -0
  216. package/overlays/otel-demo-python/.env.example +2 -0
  217. package/overlays/otel-demo-python/Dockerfile-otel-demo-python +16 -0
  218. package/overlays/otel-demo-python/README.md +82 -0
  219. package/overlays/otel-demo-python/app-otel-demo-python.py +208 -0
  220. package/overlays/otel-demo-python/devcontainer.patch.json +12 -0
  221. package/overlays/otel-demo-python/docker-compose.yml +19 -0
  222. package/overlays/otel-demo-python/overlay.yml +23 -0
  223. package/overlays/otel-demo-python/requirements-otel-demo-python.txt +4 -0
  224. package/overlays/otel-demo-python/verify.sh +31 -0
  225. package/overlays/playwright/README.md +629 -0
  226. package/overlays/playwright/devcontainer.patch.json +9 -0
  227. package/overlays/playwright/overlay.yml +13 -0
  228. package/overlays/postgres/.env.example +6 -0
  229. package/overlays/postgres/README.md +602 -0
  230. package/overlays/postgres/devcontainer.patch.json +21 -0
  231. package/overlays/postgres/docker-compose.yml +22 -0
  232. package/overlays/postgres/overlay.yml +15 -0
  233. package/overlays/postgres/verify.sh +45 -0
  234. package/overlays/powershell/README.md +314 -0
  235. package/overlays/powershell/devcontainer.patch.json +22 -0
  236. package/overlays/powershell/overlay.yml +13 -0
  237. package/overlays/powershell/setup.sh +29 -0
  238. package/overlays/powershell/verify.sh +38 -0
  239. package/overlays/pre-commit/README.md +263 -0
  240. package/overlays/pre-commit/devcontainer.patch.json +9 -0
  241. package/overlays/pre-commit/overlay.yml +16 -0
  242. package/overlays/pre-commit/setup.sh +129 -0
  243. package/overlays/presets/docs-site.yml +118 -0
  244. package/overlays/presets/fullstack.yml +181 -0
  245. package/overlays/presets/microservice.yml +118 -0
  246. package/overlays/presets/web-api.yml +109 -0
  247. package/overlays/prometheus/.env.example +5 -0
  248. package/overlays/prometheus/README.md +1246 -0
  249. package/overlays/prometheus/devcontainer.patch.json +12 -0
  250. package/overlays/prometheus/docker-compose.yml +22 -0
  251. package/overlays/prometheus/overlay.yml +17 -0
  252. package/overlays/prometheus/prometheus.yml +12 -0
  253. package/overlays/prometheus/verify.sh +34 -0
  254. package/overlays/promtail/.env.example +2 -0
  255. package/overlays/promtail/README.md +357 -0
  256. package/overlays/promtail/devcontainer.patch.json +5 -0
  257. package/overlays/promtail/docker-compose.yml +16 -0
  258. package/overlays/promtail/overlay.yml +17 -0
  259. package/overlays/promtail/promtail-config.yaml +60 -0
  260. package/overlays/promtail/verify.sh +31 -0
  261. package/overlays/pulumi/README.md +472 -0
  262. package/overlays/pulumi/devcontainer.patch.json +13 -0
  263. package/overlays/pulumi/overlay.yml +14 -0
  264. package/overlays/pulumi/verify.sh +31 -0
  265. package/overlays/python/README.md +919 -0
  266. package/overlays/python/devcontainer.patch.json +41 -0
  267. package/overlays/python/overlay.yml +12 -0
  268. package/overlays/python/requirements-overlay.txt +13 -0
  269. package/overlays/python/setup.sh +47 -0
  270. package/overlays/python/verify.sh +32 -0
  271. package/overlays/rabbitmq/.env.example +7 -0
  272. package/overlays/rabbitmq/README.md +680 -0
  273. package/overlays/rabbitmq/devcontainer.patch.json +28 -0
  274. package/overlays/rabbitmq/docker-compose.yml +30 -0
  275. package/overlays/rabbitmq/overlay.yml +18 -0
  276. package/overlays/rabbitmq/verify.sh +41 -0
  277. package/overlays/redis/.env.example +4 -0
  278. package/overlays/redis/README.md +776 -0
  279. package/overlays/redis/devcontainer.patch.json +21 -0
  280. package/overlays/redis/docker-compose.yml +21 -0
  281. package/overlays/redis/overlay.yml +15 -0
  282. package/overlays/redis/verify.sh +41 -0
  283. package/overlays/redpanda/.env.example +10 -0
  284. package/overlays/redpanda/README.md +703 -0
  285. package/overlays/redpanda/devcontainer.patch.json +37 -0
  286. package/overlays/redpanda/docker-compose.yml +67 -0
  287. package/overlays/redpanda/overlay.yml +21 -0
  288. package/overlays/redpanda/verify.sh +48 -0
  289. package/overlays/rust/README.md +299 -0
  290. package/overlays/rust/devcontainer.patch.json +39 -0
  291. package/overlays/rust/overlay.yml +15 -0
  292. package/overlays/rust/setup.sh +36 -0
  293. package/overlays/rust/verify.sh +51 -0
  294. package/overlays/sqlite/README.md +584 -0
  295. package/overlays/sqlite/devcontainer.patch.json +14 -0
  296. package/overlays/sqlite/overlay.yml +15 -0
  297. package/overlays/sqlite/setup.sh +27 -0
  298. package/overlays/sqlite/verify.sh +43 -0
  299. package/overlays/sqlserver/.env.example +6 -0
  300. package/overlays/sqlserver/README.md +592 -0
  301. package/overlays/sqlserver/devcontainer.patch.json +22 -0
  302. package/overlays/sqlserver/docker-compose.yml +32 -0
  303. package/overlays/sqlserver/overlay.yml +17 -0
  304. package/overlays/sqlserver/verify.sh +30 -0
  305. package/overlays/tempo/.env.example +5 -0
  306. package/overlays/tempo/README.md +273 -0
  307. package/overlays/tempo/devcontainer.patch.json +12 -0
  308. package/overlays/tempo/docker-compose.yml +20 -0
  309. package/overlays/tempo/overlay.yml +20 -0
  310. package/overlays/tempo/tempo-config.yaml +32 -0
  311. package/overlays/tempo/verify.sh +31 -0
  312. package/overlays/terraform/README.md +389 -0
  313. package/overlays/terraform/devcontainer.patch.json +15 -0
  314. package/overlays/terraform/overlay.yml +14 -0
  315. package/overlays/terraform/verify.sh +63 -0
  316. package/package.json +74 -0
  317. package/templates/README.md +285 -0
  318. package/templates/compose/.devcontainer/devcontainer.json +46 -0
  319. package/templates/compose/.devcontainer/docker-compose.yml +12 -0
  320. package/templates/compose/README.md +20 -0
  321. package/templates/plain/.devcontainer/devcontainer.json +35 -0
  322. package/templates/plain/README.md +21 -0
  323. package/tool/README.md +281 -0
  324. package/tool/schema/base-images.schema.json +43 -0
  325. package/tool/schema/base-templates.schema.json +34 -0
  326. package/tool/schema/config.schema.json +71 -0
  327. package/tool/schema/overlay-manifest.schema.json +86 -0
@@ -0,0 +1,293 @@
1
+ # Go Overlay
2
+
3
+ Adds Go latest stable version with tooling for cloud-native development, microservices, and CLI applications.
4
+
5
+ ## Features
6
+
7
+ - **Go** - Latest stable version from official Go team
8
+ - **gopls** - Official Go language server for IntelliSense
9
+ - **delve** - Powerful Go debugger
10
+ - **golangci-lint** - Fast linters aggregator
11
+ - **VS Code Extension:** Go (golang.go) - Complete Go development experience
12
+ - **Automatic module management** - Runs `go mod download` on container creation
13
+
14
+ ## How It Works
15
+
16
+ This overlay uses the official devcontainers Go feature to install the latest stable Go version. The setup script installs essential Go development tools including gopls (language server), delve (debugger), and golangci-lint (linter).
17
+
18
+ **Installation method:**
19
+
20
+ - Go runtime via official devcontainer feature
21
+ - Development tools via `go install`
22
+ - Tools accessible in $GOPATH/bin
23
+
24
+ ## Common Commands
25
+
26
+ ### Project Initialization
27
+
28
+ ```bash
29
+ # Create new module
30
+ go mod init github.com/username/project
31
+
32
+ # Add dependency
33
+ go get github.com/gin-gonic/gin@latest
34
+
35
+ # Update dependencies
36
+ go get -u ./...
37
+
38
+ # Tidy modules (remove unused)
39
+ go mod tidy
40
+ ```
41
+
42
+ ### Building and Running
43
+
44
+ ```bash
45
+ # Run application
46
+ go run main.go
47
+
48
+ # Build binary
49
+ go build -o myapp
50
+
51
+ # Build with optimizations
52
+ go build -ldflags="-s -w" -o myapp
53
+
54
+ # Cross-compile for Linux
55
+ GOOS=linux GOARCH=amd64 go build -o myapp-linux
56
+
57
+ # Install binary to $GOPATH/bin
58
+ go install
59
+ ```
60
+
61
+ ### Testing
62
+
63
+ ```bash
64
+ # Run tests
65
+ go test ./...
66
+
67
+ # Run with coverage
68
+ go test -cover ./...
69
+
70
+ # Generate coverage report
71
+ go test -coverprofile=coverage.out ./...
72
+ go tool cover -html=coverage.out
73
+
74
+ # Run benchmarks
75
+ go test -bench=. ./...
76
+
77
+ # Verbose output
78
+ go test -v ./...
79
+ ```
80
+
81
+ ### Code Quality
82
+
83
+ ```bash
84
+ # Format code
85
+ go fmt ./...
86
+ # or with gofumpt (stricter)
87
+ gofumpt -l -w .
88
+
89
+ # Lint with golangci-lint
90
+ golangci-lint run
91
+
92
+ # Vet (detect suspicious code)
93
+ go vet ./...
94
+
95
+ # Static analysis with staticcheck
96
+ staticcheck ./...
97
+ ```
98
+
99
+ ### Dependency Management
100
+
101
+ ```bash
102
+ # List dependencies
103
+ go list -m all
104
+
105
+ # View dependency graph
106
+ go mod graph
107
+
108
+ # Vendor dependencies (optional)
109
+ go mod vendor
110
+
111
+ # Check for updates
112
+ go list -u -m all
113
+ ```
114
+
115
+ ## Use Cases
116
+
117
+ - **Microservices** - Cloud-native services with gRPC or REST APIs
118
+ - **CLI tools** - Command-line applications (Cobra, urfave/cli)
119
+ - **Cloud infrastructure** - Kubernetes operators, Terraform providers
120
+ - **Web servers** - HTTP APIs (Gin, Echo, Fiber)
121
+ - **Systems programming** - High-performance networked services
122
+ - **DevOps tools** - Build tools, deployment automation
123
+
124
+ **Integrates well with:**
125
+
126
+ - `postgres`, `redis`, `mysql` - Database drivers (pq, go-redis, mysql)
127
+ - `docker-sock` - Docker SDK for Go
128
+ - `kubectl-helm` - Kubernetes client libraries
129
+ - `otel-collector`, `jaeger` - OpenTelemetry Go SDK
130
+ - `prometheus` - Prometheus Go client
131
+
132
+ ## Configuration
133
+
134
+ ### Go Version
135
+
136
+ The overlay installs the **latest stable** Go version. To use a specific version, modify `devcontainer.patch.json`:
137
+
138
+ ```json
139
+ {
140
+ "features": {
141
+ "ghcr.io/devcontainers/features/go:1": {
142
+ "version": "1.21" // Specify exact version
143
+ }
144
+ }
145
+ }
146
+ ```
147
+
148
+ ### golangci-lint Configuration
149
+
150
+ Create `.golangci.yml` in project root:
151
+
152
+ ```yaml
153
+ linters:
154
+ enable:
155
+ - gofmt
156
+ - gofumpt
157
+ - govet
158
+ - staticcheck
159
+ - errcheck
160
+ - gosimple
161
+ - unused
162
+
163
+ linters-settings:
164
+ gofumpt:
165
+ extra-rules: true
166
+ ```
167
+
168
+ ## Application Integration
169
+
170
+ ### HTTP Server with Gin
171
+
172
+ ```go
173
+ package main
174
+
175
+ import (
176
+ "github.com/gin-gonic/gin"
177
+ "net/http"
178
+ )
179
+
180
+ func main() {
181
+ r := gin.Default()
182
+
183
+ r.GET("/", func(c *gin.Context) {
184
+ c.JSON(http.StatusOK, gin.H{
185
+ "message": "Hello from Go!",
186
+ })
187
+ })
188
+
189
+ r.Run(":8080") // Listen on port 8080
190
+ }
191
+ ```
192
+
193
+ **Run:**
194
+
195
+ ```bash
196
+ go mod init myapp
197
+ go get github.com/gin-gonic/gin
198
+ go run main.go
199
+ # Access at http://localhost:8080
200
+ ```
201
+
202
+ ### PostgreSQL Integration
203
+
204
+ ```go
205
+ package main
206
+
207
+ import (
208
+ "database/sql"
209
+ _ "github.com/lib/pq"
210
+ )
211
+
212
+ func main() {
213
+ connStr := "host=postgres port=5432 user=postgres password=postgres dbname=mydb sslmode=disable"
214
+ db, err := sql.Open("postgres", connStr)
215
+ if err != nil {
216
+ panic(err)
217
+ }
218
+ defer db.Close()
219
+
220
+ // Use database
221
+ rows, err := db.Query("SELECT * FROM users")
222
+ // ...
223
+ }
224
+ ```
225
+
226
+ ## Troubleshooting
227
+
228
+ ### Issue: gopls not found
229
+
230
+ **Symptoms:**
231
+
232
+ - IntelliSense not working
233
+ - "gopls not found" error
234
+
235
+ **Solution:**
236
+
237
+ ```bash
238
+ # Install gopls manually
239
+ go install golang.org/x/tools/gopls@latest
240
+
241
+ # Verify installation
242
+ gopls version
243
+ ```
244
+
245
+ ### Issue: Module not found
246
+
247
+ **Symptoms:**
248
+
249
+ - `cannot find module` errors
250
+ - Import errors
251
+
252
+ **Solution:**
253
+
254
+ ```bash
255
+ # Initialize module if not done
256
+ go mod init github.com/yourname/project
257
+
258
+ # Download dependencies
259
+ go mod download
260
+
261
+ # Tidy dependencies
262
+ go mod tidy
263
+ ```
264
+
265
+ ### Issue: GOPATH/GOROOT issues
266
+
267
+ **Solution:**
268
+
269
+ ```bash
270
+ # Check environment
271
+ go env GOPATH
272
+ go env GOROOT
273
+
274
+ # Should output:
275
+ # GOPATH=/go
276
+ # GOROOT=/usr/local/go
277
+ ```
278
+
279
+ ## References
280
+
281
+ - [Official Go Documentation](https://go.dev/doc/) - Complete Go documentation
282
+ - [Go by Example](https://gobyexample.com/) - Hands-on introduction
283
+ - [Effective Go](https://go.dev/doc/effective_go) - Best practices
284
+ - [Go Extension for VS Code](https://marketplace.visualstudio.com/items?itemName=golang.Go)
285
+ - [golangci-lint](https://golangci-lint.run/) - Linters aggregator
286
+
287
+ **Related Overlays:**
288
+
289
+ - `postgres` - PostgreSQL database (lib/pq driver)
290
+ - `redis` - Redis cache (go-redis library)
291
+ - `docker-sock` - Docker SDK for Go
292
+ - `kubectl-helm` - Kubernetes client-go
293
+ - `prometheus` - Prometheus Go client
@@ -0,0 +1,43 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.base.schema.json",
3
+ "features": {
4
+ "./features/cross-distro-packages": {
5
+ "apt": "build-essential",
6
+ "apk": "build-base"
7
+ },
8
+ "ghcr.io/devcontainers/features/go:1": {
9
+ "version": "latest"
10
+ }
11
+ },
12
+ "customizations": {
13
+ "vscode": {
14
+ "extensions": ["golang.go"],
15
+ "settings": {
16
+ "go.toolsManagement.autoUpdate": true,
17
+ "[go]": {
18
+ "editor.formatOnSave": true,
19
+ "editor.codeActionsOnSave": {
20
+ "source.organizeImports": "explicit"
21
+ }
22
+ },
23
+ "go.lintTool": "golangci-lint",
24
+ "go.lintOnSave": "package"
25
+ }
26
+ }
27
+ },
28
+ "remoteEnv": {
29
+ "PATH": "/go/bin:/usr/local/go/bin:${containerEnv:PATH}",
30
+ "GOPATH": "/go"
31
+ },
32
+ "forwardPorts": [8080, 8081],
33
+ "portsAttributes": {
34
+ "8080": {
35
+ "label": "Web Server",
36
+ "onAutoForward": "openBrowser"
37
+ },
38
+ "8081": {
39
+ "label": "gRPC/API",
40
+ "onAutoForward": "notify"
41
+ }
42
+ }
43
+ }
@@ -0,0 +1,15 @@
1
+ id: go
2
+ name: Go
3
+ description: Go latest stable with gopls and delve debugger
4
+ category: language
5
+ supports: []
6
+ requires: []
7
+ suggests: []
8
+ conflicts: []
9
+ tags:
10
+ - language
11
+ - go
12
+ - golang
13
+ ports:
14
+ - 8080
15
+ - 8081
@@ -0,0 +1,33 @@
1
+ #!/bin/bash
2
+ # Go setup script - Install Go tools and verify installation
3
+
4
+ set -e
5
+
6
+ echo "🔧 Setting up Go development environment..."
7
+
8
+ # Install common Go tools
9
+ echo "📦 Installing Go development tools..."
10
+
11
+ # gopls (Language Server)
12
+ go install golang.org/x/tools/gopls@latest || echo "⚠️ gopls installation failed"
13
+
14
+ # delve (Debugger)
15
+ go install github.com/go-delve/delve/cmd/dlv@latest || echo "⚠️ delve installation failed"
16
+
17
+ # golangci-lint (Linter) - install via go install for security
18
+ go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest || echo "⚠️ golangci-lint installation failed"
19
+
20
+ # gofumpt (Formatter)
21
+ go install mvdan.cc/gofumpt@latest || echo "⚠️ gofumpt installation failed"
22
+
23
+ # staticcheck (Static analyzer)
24
+ go install honnef.co/go/tools/cmd/staticcheck@latest || echo "⚠️ staticcheck installation failed"
25
+
26
+ # Install project dependencies if go.mod exists
27
+ if [ -f "go.mod" ]; then
28
+ echo "📦 Go module detected, downloading dependencies..."
29
+ go mod download || echo "⚠️ go mod download failed"
30
+ go mod tidy || echo "⚠️ go mod tidy failed"
31
+ fi
32
+
33
+ echo "✓ Go setup complete"
@@ -0,0 +1,40 @@
1
+ #!/bin/bash
2
+ # Verification script for Go overlay
3
+
4
+ set -e
5
+
6
+ echo "🔍 Verifying Go overlay..."
7
+ echo ""
8
+
9
+ # Check Go is installed
10
+ echo "1️⃣ Checking Go..."
11
+ if command -v go &> /dev/null; then
12
+ go version
13
+ echo " ✅ Go found"
14
+ else
15
+ echo " ❌ Go not found"
16
+ exit 1
17
+ fi
18
+
19
+ # Check gopls (Language Server)
20
+ echo ""
21
+ echo "2️⃣ Checking gopls..."
22
+ if command -v gopls &> /dev/null; then
23
+ gopls version
24
+ echo " ✅ gopls found"
25
+ else
26
+ echo " ⚠️ gopls not found (will be installed on first use)"
27
+ fi
28
+
29
+ # Check delve (Debugger)
30
+ echo ""
31
+ echo "3️⃣ Checking delve..."
32
+ if command -v dlv &> /dev/null; then
33
+ dlv version
34
+ echo " ✅ delve found"
35
+ else
36
+ echo " ⚠️ delve not found (will be installed on first use)"
37
+ fi
38
+
39
+ echo ""
40
+ echo "✅ Go overlay verification complete"
@@ -0,0 +1,9 @@
1
+ # Grafana version
2
+ GRAFANA_VERSION=latest
3
+
4
+ # Grafana admin credentials
5
+ GRAFANA_ADMIN_USER=admin
6
+ GRAFANA_ADMIN_PASSWORD=admin
7
+
8
+ # Grafana port
9
+ GRAFANA_PORT=3000