container-superposition 0.1.7 → 0.1.9
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.
- package/README.md +24 -15
- package/dist/scripts/init.js +1 -1537
- package/dist/scripts/init.js.map +1 -1
- package/dist/tool/cli/args.d.ts +20 -0
- package/dist/tool/cli/args.d.ts.map +1 -0
- package/dist/tool/cli/args.js +325 -0
- package/dist/tool/cli/args.js.map +1 -0
- package/dist/tool/cli/run.d.ts +2 -0
- package/dist/tool/cli/run.d.ts.map +1 -0
- package/dist/tool/cli/run.js +318 -0
- package/dist/tool/cli/run.js.map +1 -0
- package/dist/tool/commands/adopt.js +1 -1
- package/dist/tool/commands/adopt.js.map +1 -1
- package/dist/tool/commands/doctor.d.ts +1 -0
- package/dist/tool/commands/doctor.d.ts.map +1 -1
- package/dist/tool/commands/doctor.js +1510 -78
- package/dist/tool/commands/doctor.js.map +1 -1
- package/dist/tool/commands/explain.d.ts.map +1 -1
- package/dist/tool/commands/explain.js +9 -0
- package/dist/tool/commands/explain.js.map +1 -1
- package/dist/tool/commands/migrate.d.ts +7 -0
- package/dist/tool/commands/migrate.d.ts.map +1 -0
- package/dist/tool/commands/migrate.js +52 -0
- package/dist/tool/commands/migrate.js.map +1 -0
- package/dist/tool/questionnaire/answers.d.ts +16 -0
- package/dist/tool/questionnaire/answers.d.ts.map +1 -0
- package/dist/tool/questionnaire/answers.js +102 -0
- package/dist/tool/questionnaire/answers.js.map +1 -0
- package/dist/tool/questionnaire/composer.d.ts +6 -4
- package/dist/tool/questionnaire/composer.d.ts.map +1 -1
- package/dist/tool/questionnaire/composer.js +778 -45
- package/dist/tool/questionnaire/composer.js.map +1 -1
- package/dist/tool/questionnaire/presets.d.ts +60 -0
- package/dist/tool/questionnaire/presets.d.ts.map +1 -0
- package/dist/tool/questionnaire/presets.js +165 -0
- package/dist/tool/questionnaire/presets.js.map +1 -0
- package/dist/tool/questionnaire/questionnaire.d.ts +10 -0
- package/dist/tool/questionnaire/questionnaire.d.ts.map +1 -0
- package/dist/tool/questionnaire/questionnaire.js +582 -0
- package/dist/tool/questionnaire/questionnaire.js.map +1 -0
- package/dist/tool/schema/manifest-migrations.d.ts +5 -0
- package/dist/tool/schema/manifest-migrations.d.ts.map +1 -1
- package/dist/tool/schema/manifest-migrations.js +45 -0
- package/dist/tool/schema/manifest-migrations.js.map +1 -1
- package/dist/tool/schema/overlay-loader.d.ts.map +1 -1
- package/dist/tool/schema/overlay-loader.js +24 -0
- package/dist/tool/schema/overlay-loader.js.map +1 -1
- package/dist/tool/schema/project-config.d.ts +13 -1
- package/dist/tool/schema/project-config.d.ts.map +1 -1
- package/dist/tool/schema/project-config.js +188 -10
- package/dist/tool/schema/project-config.js.map +1 -1
- package/dist/tool/schema/target-rules.d.ts +78 -0
- package/dist/tool/schema/target-rules.d.ts.map +1 -0
- package/dist/tool/schema/target-rules.js +367 -0
- package/dist/tool/schema/target-rules.js.map +1 -0
- package/dist/tool/schema/types.d.ts +42 -3
- package/dist/tool/schema/types.d.ts.map +1 -1
- package/dist/tool/utils/parameters.d.ts +76 -0
- package/dist/tool/utils/parameters.d.ts.map +1 -0
- package/dist/tool/utils/parameters.js +125 -0
- package/dist/tool/utils/parameters.js.map +1 -0
- package/dist/tool/utils/paths.d.ts +2 -0
- package/dist/tool/utils/paths.d.ts.map +1 -0
- package/dist/tool/utils/paths.js +31 -0
- package/dist/tool/utils/paths.js.map +1 -0
- package/docs/deployment-targets.md +88 -56
- package/docs/examples.md +20 -17
- package/docs/filesystem-contract.md +5 -0
- package/docs/minimal-and-editor.md +65 -5
- package/docs/overlay-imports.md +92 -14
- package/docs/overlays.md +231 -135
- package/docs/specs/001-verbose-plan-graph/spec.md +5 -12
- package/docs/specs/002-superposition-config-file/spec.md +5 -12
- package/docs/specs/003-mkdocs2-overlay/spec.md +2 -9
- package/docs/specs/004-doctor-fix/spec.md +1 -8
- package/docs/specs/005-cuda-overlay/spec.md +2 -9
- package/docs/specs/006-rocm-overlay/spec.md +3 -10
- package/docs/specs/007-target-aware-generation/spec.md +119 -0
- package/docs/specs/008-project-file-canonical/spec.md +82 -0
- package/docs/specs/009-project-env/spec.md +140 -0
- package/docs/specs/010-compose-env-materialization/spec.md +123 -0
- package/docs/specs/011-overlay-parameters/spec.md +228 -0
- package/docs/specs/012-ollama-cli-overlay/spec.md +47 -0
- package/docs/specs/013-doctor-dependency-check/spec.md +250 -0
- package/docs/specs/014-doctor-compose-port-cross-validation/spec.md +276 -0
- package/docs/specs/015-doctor-env-example-drift/spec.md +248 -0
- package/docs/specs/016-doctor-reproducibility-check/spec.md +276 -0
- package/docs/specs/017-doctor-dry-run/spec.md +276 -0
- package/docs/specs/018-init-project-file/spec.md +59 -0
- package/docs/specs/taxonomy.md +186 -0
- package/overlays/.presets/full-observability.yml +113 -0
- package/overlays/.presets/k8s-dev.yml +174 -0
- package/overlays/.presets/local-llm.yml +105 -0
- package/overlays/.presets/vector-ai.yml +150 -0
- package/overlays/.shared/README.md +27 -2
- package/overlays/.shared/compose/nvidia-gpu-devcontainer.yml +22 -0
- package/overlays/.shared/vscode/js-ts-settings.json +19 -0
- package/overlays/.shared/vscode/markdown-extensions.json +8 -0
- package/overlays/alertmanager/devcontainer.patch.json +0 -1
- package/overlays/alertmanager/docker-compose.yml +8 -0
- package/overlays/alertmanager/overlay.yml +1 -0
- package/overlays/amp/devcontainer.patch.json +4 -1
- package/overlays/bun/devcontainer.patch.json +1 -10
- package/overlays/bun/overlay.yml +8 -1
- package/overlays/claude-code/devcontainer.patch.json +6 -1
- package/overlays/codex/devcontainer.patch.json +5 -0
- package/overlays/comfyui/.env.example +34 -0
- package/overlays/comfyui/README.md +342 -0
- package/overlays/comfyui/devcontainer.patch.json +15 -0
- package/overlays/comfyui/docker-compose.yml +40 -0
- package/overlays/comfyui/overlay.yml +24 -0
- package/overlays/comfyui/setup.sh +36 -0
- package/overlays/comfyui/verify.sh +103 -0
- package/overlays/commitlint/devcontainer.patch.json +1 -6
- package/overlays/docker-sock/overlay.yml +1 -0
- package/overlays/dotnet/overlay.yml +4 -1
- package/overlays/fuseki/.env.example +5 -0
- package/overlays/fuseki/README.md +173 -0
- package/overlays/fuseki/devcontainer.patch.json +18 -0
- package/overlays/fuseki/docker-compose.yml +29 -0
- package/overlays/fuseki/overlay.yml +42 -0
- package/overlays/fuseki/verify.sh +58 -0
- package/overlays/gemini-cli/devcontainer.patch.json +4 -1
- package/overlays/go/overlay.yml +6 -1
- package/overlays/grafana/devcontainer.patch.json +0 -1
- package/overlays/grafana/docker-compose.yml +8 -2
- package/overlays/grafana/overlay.yml +6 -1
- package/overlays/jaeger/.env.example +11 -0
- package/overlays/jaeger/README.md +33 -4
- package/overlays/jaeger/devcontainer.patch.json +9 -1
- package/overlays/jaeger/docker-compose.yml +17 -0
- package/overlays/jaeger/overlay.yml +1 -12
- package/overlays/java/overlay.yml +6 -1
- package/overlays/jupyter/docker-compose.yml +1 -0
- package/overlays/jupyter/overlay.yml +1 -0
- package/overlays/k3d/README.md +201 -0
- package/overlays/k3d/devcontainer.patch.json +9 -0
- package/overlays/k3d/overlay.yml +19 -0
- package/overlays/k3d/setup.sh +34 -0
- package/overlays/k3d/verify.sh +38 -0
- package/overlays/keycloak/devcontainer.patch.json +0 -1
- package/overlays/keycloak/docker-compose.yml +1 -0
- package/overlays/keycloak/overlay.yml +15 -0
- package/overlays/localstack/docker-compose.yml +1 -0
- package/overlays/localstack/overlay.yml +19 -1
- package/overlays/loki/devcontainer.patch.json +0 -1
- package/overlays/loki/docker-compose.yml +8 -0
- package/overlays/loki/overlay.yml +1 -0
- package/overlays/mailpit/docker-compose.yml +1 -0
- package/overlays/mailpit/overlay.yml +1 -0
- package/overlays/minio/devcontainer.patch.json +1 -1
- package/overlays/minio/docker-compose.yml +1 -0
- package/overlays/minio/overlay.yml +23 -2
- package/overlays/mkdocs/devcontainer.patch.json +1 -5
- package/overlays/mkdocs/overlay.yml +3 -1
- package/overlays/mkdocs2/devcontainer.patch.json +1 -5
- package/overlays/mkdocs2/overlay.yml +2 -0
- package/overlays/mongodb/docker-compose.yml +2 -0
- package/overlays/mongodb/overlay.yml +26 -2
- package/overlays/mysql/docker-compose.yml +2 -0
- package/overlays/mysql/overlay.yml +36 -2
- package/overlays/nats/docker-compose.yml +1 -0
- package/overlays/nats/overlay.yml +18 -2
- package/overlays/nodejs/devcontainer.patch.json +1 -12
- package/overlays/nodejs/overlay.yml +8 -1
- package/overlays/ollama/.env.example +14 -0
- package/overlays/ollama/README.md +326 -0
- package/overlays/ollama/devcontainer.patch.json +14 -0
- package/overlays/ollama/docker-compose.yml +25 -0
- package/overlays/ollama/overlay.yml +27 -0
- package/overlays/ollama/verify.sh +76 -0
- package/overlays/ollama-cli/README.md +90 -0
- package/overlays/ollama-cli/devcontainer.patch.json +3 -0
- package/overlays/ollama-cli/overlay.yml +19 -0
- package/overlays/ollama-cli/setup.sh +103 -0
- package/overlays/ollama-cli/verify.sh +49 -0
- package/overlays/open-webui/.env.example +5 -0
- package/overlays/open-webui/README.md +162 -0
- package/overlays/open-webui/devcontainer.patch.json +14 -0
- package/overlays/open-webui/docker-compose.yml +24 -0
- package/overlays/open-webui/overlay.yml +45 -0
- package/overlays/opencode/devcontainer.patch.json +4 -1
- package/overlays/otel-collector/README.md +4 -0
- package/overlays/otel-collector/devcontainer.patch.json +4 -1
- package/overlays/otel-collector/docker-compose.yml +8 -4
- package/overlays/otel-collector/overlay.yml +1 -0
- package/overlays/otel-demo-nodejs/devcontainer.patch.json +0 -1
- package/overlays/otel-demo-nodejs/docker-compose.yml +1 -0
- package/overlays/otel-demo-nodejs/overlay.yml +9 -1
- package/overlays/otel-demo-python/devcontainer.patch.json +0 -1
- package/overlays/otel-demo-python/docker-compose.yml +1 -0
- package/overlays/otel-demo-python/overlay.yml +6 -1
- package/overlays/pandoc/README.md +10 -0
- package/overlays/pandoc/devcontainer.patch.json +0 -5
- package/overlays/pandoc/overlay.yml +2 -0
- package/overlays/pandoc/setup.sh +10 -0
- package/overlays/pgvector/.env.example +6 -0
- package/overlays/pgvector/README.md +215 -0
- package/overlays/pgvector/devcontainer.patch.json +29 -0
- package/overlays/pgvector/docker-compose.yml +33 -0
- package/overlays/pgvector/overlay.yml +47 -0
- package/overlays/playwright/devcontainer.patch.json +0 -5
- package/overlays/playwright/overlay.yml +2 -1
- package/overlays/postgres/.env.example +5 -5
- package/overlays/postgres/devcontainer.patch.json +4 -4
- package/overlays/postgres/docker-compose.yml +11 -6
- package/overlays/postgres/overlay.yml +23 -2
- package/overlays/pre-commit/devcontainer.patch.json +1 -7
- package/overlays/prometheus/devcontainer.patch.json +0 -1
- package/overlays/prometheus/docker-compose.yml +8 -0
- package/overlays/prometheus/overlay.yml +1 -0
- package/overlays/promtail/devcontainer.patch.json +1 -2
- package/overlays/promtail/docker-compose.yml +8 -0
- package/overlays/promtail/overlay.yml +1 -0
- package/overlays/qdrant/.env.example +4 -0
- package/overlays/qdrant/README.md +216 -0
- package/overlays/qdrant/devcontainer.patch.json +20 -0
- package/overlays/qdrant/docker-compose.yml +26 -0
- package/overlays/qdrant/overlay.yml +44 -0
- package/overlays/rabbitmq/docker-compose.yml +1 -0
- package/overlays/rabbitmq/overlay.yml +25 -2
- package/overlays/redis/docker-compose.yml +7 -0
- package/overlays/redis/overlay.yml +15 -1
- package/overlays/redpanda/docker-compose.yml +1 -0
- package/overlays/redpanda/overlay.yml +15 -3
- package/overlays/rocm/overlay.yml +2 -1
- package/overlays/rust/overlay.yml +3 -1
- package/overlays/skaffold/README.md +256 -0
- package/overlays/skaffold/devcontainer.patch.json +9 -0
- package/overlays/skaffold/overlay.yml +20 -0
- package/overlays/skaffold/setup.sh +33 -0
- package/overlays/skaffold/verify.sh +24 -0
- package/overlays/sqlserver/docker-compose.yml +1 -0
- package/overlays/sqlserver/overlay.yml +17 -0
- package/overlays/tempo/devcontainer.patch.json +0 -1
- package/overlays/tempo/docker-compose.yml +8 -0
- package/overlays/tempo/overlay.yml +1 -0
- package/overlays/windsurf-cli/devcontainer.patch.json +4 -1
- package/package.json +3 -2
- package/tool/schema/config.schema.json +31 -1
- package/tool/schema/overlay-manifest.schema.json +33 -0
- package/overlays/.shared/otel/otel-base-config.yaml +0 -30
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
# Vector AI Stack Preset
|
|
2
|
+
# Full RAG pipeline: vector DB + local embeddings + Python client
|
|
3
|
+
|
|
4
|
+
id: vector-ai
|
|
5
|
+
name: Vector AI Stack
|
|
6
|
+
description: Full RAG pipeline — Qdrant vector database, Ollama for local embeddings, and Python for client code
|
|
7
|
+
type: meta
|
|
8
|
+
category: preset
|
|
9
|
+
supports: [compose] # Requires Docker Compose for Qdrant and Ollama services
|
|
10
|
+
tags: [preset, ai, rag, vector, embeddings, qdrant, ollama, python]
|
|
11
|
+
|
|
12
|
+
selects:
|
|
13
|
+
required:
|
|
14
|
+
- qdrant
|
|
15
|
+
- ollama
|
|
16
|
+
- ollama-cli
|
|
17
|
+
- python
|
|
18
|
+
|
|
19
|
+
userChoice: {}
|
|
20
|
+
|
|
21
|
+
parameters:
|
|
22
|
+
gpu:
|
|
23
|
+
description: 'GPU acceleration for embedding generation'
|
|
24
|
+
default: none
|
|
25
|
+
options:
|
|
26
|
+
- id: none
|
|
27
|
+
overlays: []
|
|
28
|
+
description: 'CPU only — adequate for embedding workloads (smaller models)'
|
|
29
|
+
- id: nvidia
|
|
30
|
+
overlays: [cuda]
|
|
31
|
+
description: 'Nvidia GPU via CUDA — significantly faster embedding throughput'
|
|
32
|
+
- id: amd
|
|
33
|
+
overlays: [rocm]
|
|
34
|
+
description: 'AMD GPU via ROCm'
|
|
35
|
+
|
|
36
|
+
chat_ui:
|
|
37
|
+
description: 'Browser chat UI (optional — useful for testing your RAG pipeline)'
|
|
38
|
+
default: none
|
|
39
|
+
options:
|
|
40
|
+
- id: none
|
|
41
|
+
overlays: []
|
|
42
|
+
description: 'No chat UI — use the API or your own frontend'
|
|
43
|
+
- id: open-webui
|
|
44
|
+
overlays: [open-webui]
|
|
45
|
+
description: 'Open WebUI — test RAG-augmented chat visually'
|
|
46
|
+
|
|
47
|
+
glueConfig:
|
|
48
|
+
environment:
|
|
49
|
+
OLLAMA_HOST: 'http://ollama:11434'
|
|
50
|
+
QDRANT_HOST: 'qdrant'
|
|
51
|
+
QDRANT_PORT: '6333'
|
|
52
|
+
QDRANT_URL: 'http://qdrant:6333'
|
|
53
|
+
EMBEDDING_MODEL: 'nomic-embed-text'
|
|
54
|
+
|
|
55
|
+
portMappings:
|
|
56
|
+
qdrant-rest: 6333
|
|
57
|
+
qdrant-grpc: 6334
|
|
58
|
+
ollama-api: 11434
|
|
59
|
+
|
|
60
|
+
readme: |
|
|
61
|
+
## Vector AI Stack
|
|
62
|
+
|
|
63
|
+
This devcontainer provides a complete local RAG (Retrieval-Augmented Generation) pipeline.
|
|
64
|
+
|
|
65
|
+
### Services
|
|
66
|
+
|
|
67
|
+
| Service | Port | Purpose |
|
|
68
|
+
|---------|------|---------|
|
|
69
|
+
| Qdrant | 6333 (REST), 6334 (gRPC) | Vector database |
|
|
70
|
+
| Ollama | 11434 | LLM and embedding model runtime |
|
|
71
|
+
| ollama-cli | — | `ollama` command in terminal |
|
|
72
|
+
|
|
73
|
+
### Quick Start
|
|
74
|
+
|
|
75
|
+
#### 1. Pull an embedding model
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
ollama pull nomic-embed-text
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
#### 2. Pull a chat model (for RAG generation)
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
ollama pull llama3.2
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
#### 3. Build your pipeline (Python example)
|
|
88
|
+
|
|
89
|
+
```python
|
|
90
|
+
from qdrant_client import QdrantClient
|
|
91
|
+
import ollama
|
|
92
|
+
import os
|
|
93
|
+
|
|
94
|
+
qdrant = QdrantClient(url=os.environ["QDRANT_URL"])
|
|
95
|
+
embedding_model = os.environ["EMBEDDING_MODEL"]
|
|
96
|
+
|
|
97
|
+
# Create a collection
|
|
98
|
+
from qdrant_client.models import Distance, VectorParams
|
|
99
|
+
qdrant.create_collection(
|
|
100
|
+
collection_name="docs",
|
|
101
|
+
vectors_config=VectorParams(size=768, distance=Distance.COSINE),
|
|
102
|
+
)
|
|
103
|
+
|
|
104
|
+
# Embed and index a document
|
|
105
|
+
text = "Container Superposition makes devcontainer composition easy."
|
|
106
|
+
response = ollama.embed(model=embedding_model, input=text)
|
|
107
|
+
vector = response["embeddings"][0]
|
|
108
|
+
|
|
109
|
+
qdrant.upsert(
|
|
110
|
+
collection_name="docs",
|
|
111
|
+
points=[{"id": 1, "vector": vector, "payload": {"text": text}}],
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
# Search
|
|
115
|
+
query = "How does devcontainer composition work?"
|
|
116
|
+
q_vec = ollama.embed(model=embedding_model, input=query)["embeddings"][0]
|
|
117
|
+
results = qdrant.search(collection_name="docs", query_vector=q_vec, limit=3)
|
|
118
|
+
for r in results:
|
|
119
|
+
print(r.payload["text"])
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Environment Variables
|
|
123
|
+
|
|
124
|
+
Already set in your devcontainer:
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
OLLAMA_HOST=http://ollama:11434
|
|
128
|
+
QDRANT_HOST=qdrant
|
|
129
|
+
QDRANT_PORT=6333
|
|
130
|
+
QDRANT_URL=http://qdrant:6333
|
|
131
|
+
EMBEDDING_MODEL=nomic-embed-text
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### Qdrant Dashboard
|
|
135
|
+
|
|
136
|
+
Access the Qdrant web dashboard at http://localhost:6333/dashboard to inspect
|
|
137
|
+
collections, run queries, and monitor index health.
|
|
138
|
+
|
|
139
|
+
### Recommended Python Packages
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
pip install qdrant-client ollama openai langchain-community
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Next Steps
|
|
146
|
+
|
|
147
|
+
- Add the `local-llm` preset's Open WebUI to test your RAG pipeline through a chat interface
|
|
148
|
+
- Swap `nomic-embed-text` for `mxbai-embed-large` for higher-quality embeddings
|
|
149
|
+
- Use Qdrant's named vectors for hybrid dense + sparse retrieval
|
|
150
|
+
- Add `prometheus` and `grafana` overlays to monitor Qdrant query performance
|
|
@@ -10,6 +10,7 @@ This directory contains reusable configuration fragments that can be imported by
|
|
|
10
10
|
│ ├── instrumentation.env # OTEL SDK env vars for instrumentation
|
|
11
11
|
│ └── otel-base-config.yaml # Base OTEL collector pipeline config
|
|
12
12
|
├── compose/ # Docker Compose patterns
|
|
13
|
+
│ ├── nvidia-gpu-devcontainer.yml # NVIDIA GPU passthrough for the devcontainer service
|
|
13
14
|
│ └── common-healthchecks.md # Standard healthcheck patterns (reference — not importable)
|
|
14
15
|
└── vscode/ # VS Code extension sets
|
|
15
16
|
└── recommended-extensions.json # Commonly recommended extensions (devcontainer patch)
|
|
@@ -44,6 +45,20 @@ This directory contains reusable configuration fragments that can be imported by
|
|
|
44
45
|
|
|
45
46
|
---
|
|
46
47
|
|
|
48
|
+
### `compose/nvidia-gpu-devcontainer.yml`
|
|
49
|
+
|
|
50
|
+
**Purpose:** Adds the `deploy.resources.reservations.devices` block to the `devcontainer` service, giving the devcontainer itself direct NVIDIA GPU access. This enables GPU-accelerated tooling (`torch`, `tensorflow`, CUDA CLIs, `nvidia-smi`) to work directly in the dev environment.
|
|
51
|
+
|
|
52
|
+
**Format:** Docker Compose service fragment (services.devcontainer only).
|
|
53
|
+
|
|
54
|
+
**Merge type:** `compose_imports:` — deep-merged into the final `docker-compose.yml` before the overlay's own `docker-compose.yml`.
|
|
55
|
+
|
|
56
|
+
**Imported by:** `ollama`
|
|
57
|
+
|
|
58
|
+
**Prerequisites:** NVIDIA Container Toolkit must be installed on the host.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
47
62
|
### `compose/common-healthchecks.md`
|
|
48
63
|
|
|
49
64
|
**Purpose:** Reference library of standard Docker Compose healthcheck patterns for common services (HTTP, PostgreSQL, Redis, MongoDB, MySQL).
|
|
@@ -64,7 +79,7 @@ This directory contains reusable configuration fragments that can be imported by
|
|
|
64
79
|
|
|
65
80
|
## Usage
|
|
66
81
|
|
|
67
|
-
Reference shared fragments in `overlay.yml` via the `imports` field:
|
|
82
|
+
Reference shared devcontainer fragments in `overlay.yml` via the `imports` field:
|
|
68
83
|
|
|
69
84
|
```yaml
|
|
70
85
|
id: my-overlay
|
|
@@ -73,11 +88,21 @@ imports:
|
|
|
73
88
|
- .shared/vscode/recommended-extensions.json
|
|
74
89
|
```
|
|
75
90
|
|
|
91
|
+
Reference shared docker-compose fragments via the `compose_imports` field:
|
|
92
|
+
|
|
93
|
+
```yaml
|
|
94
|
+
id: my-overlay
|
|
95
|
+
compose_imports:
|
|
96
|
+
- .shared/compose/nvidia-gpu-devcontainer.yml
|
|
97
|
+
```
|
|
98
|
+
|
|
76
99
|
**Rules:**
|
|
77
100
|
|
|
78
101
|
- All paths must begin with `.shared/`
|
|
79
102
|
- Paths are relative to `overlays/`
|
|
80
|
-
-
|
|
103
|
+
- `imports` fragments are applied in declaration order, then the overlay's own `devcontainer.patch.json` (overlay wins on conflict)
|
|
104
|
+
- `compose_imports` fragments are deep-merged into `docker-compose.yml` before the overlay's own `docker-compose.yml` (overlay wins on conflict)
|
|
105
|
+
- `compose_imports` files must be `.yml` or `.yaml`
|
|
81
106
|
|
|
82
107
|
## Creating New Fragments
|
|
83
108
|
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Shared Docker Compose fragment: NVIDIA GPU passthrough for the devcontainer service.
|
|
2
|
+
#
|
|
3
|
+
# Adds the deploy.resources.reservations.devices block to the devcontainer service so
|
|
4
|
+
# GPU-accelerated tooling (torch, tensorflow, CUDA CLIs, etc.) works directly in the
|
|
5
|
+
# dev environment alongside any GPU-enabled sidecar services.
|
|
6
|
+
#
|
|
7
|
+
# Requirements: NVIDIA Container Toolkit must be installed on the host.
|
|
8
|
+
# https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html
|
|
9
|
+
#
|
|
10
|
+
# Used by: ollama
|
|
11
|
+
# Import via compose_imports in overlay.yml:
|
|
12
|
+
# compose_imports:
|
|
13
|
+
# - .shared/compose/nvidia-gpu-devcontainer.yml
|
|
14
|
+
services:
|
|
15
|
+
devcontainer:
|
|
16
|
+
deploy:
|
|
17
|
+
resources:
|
|
18
|
+
reservations:
|
|
19
|
+
devices:
|
|
20
|
+
- driver: nvidia
|
|
21
|
+
count: all
|
|
22
|
+
capabilities: [gpu]
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"customizations": {
|
|
3
|
+
"vscode": {
|
|
4
|
+
"extensions": ["dbaeumer.vscode-eslint", "esbenp.prettier-vscode"],
|
|
5
|
+
"settings": {
|
|
6
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
7
|
+
"editor.formatOnSave": true,
|
|
8
|
+
"[typescript]": {
|
|
9
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
10
|
+
"editor.formatOnSave": true
|
|
11
|
+
},
|
|
12
|
+
"[javascript]": {
|
|
13
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
14
|
+
"editor.formatOnSave": true
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -2,6 +2,7 @@ version: '3.8'
|
|
|
2
2
|
services:
|
|
3
3
|
alertmanager:
|
|
4
4
|
image: prom/alertmanager:${ALERTMANAGER_VERSION:-latest}
|
|
5
|
+
restart: unless-stopped
|
|
5
6
|
command:
|
|
6
7
|
- '--config.file=/etc/alertmanager/alertmanager.yml'
|
|
7
8
|
- '--storage.path=/alertmanager'
|
|
@@ -12,9 +13,16 @@ services:
|
|
|
12
13
|
- '${ALERTMANAGER_PORT:-9093}:9093'
|
|
13
14
|
networks:
|
|
14
15
|
- devnet
|
|
16
|
+
healthcheck:
|
|
17
|
+
test: ['CMD', 'wget', '-qO-', 'http://localhost:9093/-/ready']
|
|
18
|
+
interval: 10s
|
|
19
|
+
timeout: 5s
|
|
20
|
+
retries: 5
|
|
21
|
+
start_period: 10s
|
|
15
22
|
|
|
16
23
|
volumes:
|
|
17
24
|
alertmanager_data:
|
|
18
25
|
|
|
19
26
|
networks:
|
|
20
27
|
devnet:
|
|
28
|
+
name: devnet
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.base.schema.json"
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.base.schema.json",
|
|
3
|
+
"postCreateCommand": {
|
|
4
|
+
"setup-amp": "bash .devcontainer/scripts/setup-amp.sh"
|
|
5
|
+
}
|
|
3
6
|
}
|
|
@@ -12,16 +12,7 @@
|
|
|
12
12
|
},
|
|
13
13
|
"customizations": {
|
|
14
14
|
"vscode": {
|
|
15
|
-
"extensions": ["oven.bun-vscode"
|
|
16
|
-
"settings": {
|
|
17
|
-
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
18
|
-
"[typescript]": {
|
|
19
|
-
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
20
|
-
},
|
|
21
|
-
"[javascript]": {
|
|
22
|
-
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
23
|
-
}
|
|
24
|
-
}
|
|
15
|
+
"extensions": ["oven.bun-vscode"]
|
|
25
16
|
}
|
|
26
17
|
},
|
|
27
18
|
"remoteEnv": {
|
package/overlays/bun/overlay.yml
CHANGED
|
@@ -5,7 +5,12 @@ category: language
|
|
|
5
5
|
supports: []
|
|
6
6
|
requires: []
|
|
7
7
|
suggests: []
|
|
8
|
-
conflicts:
|
|
8
|
+
conflicts:
|
|
9
|
+
- grafana
|
|
10
|
+
- open-webui
|
|
11
|
+
- mysql
|
|
12
|
+
- redpanda
|
|
13
|
+
- otel-demo-nodejs
|
|
9
14
|
tags:
|
|
10
15
|
- language
|
|
11
16
|
- bun
|
|
@@ -14,3 +19,5 @@ tags:
|
|
|
14
19
|
ports:
|
|
15
20
|
- 3000
|
|
16
21
|
- 8080
|
|
22
|
+
imports:
|
|
23
|
+
- .shared/vscode/js-ts-settings.json
|
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.base.schema.json"
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.base.schema.json",
|
|
3
|
+
"customizations": {
|
|
4
|
+
"vscode": {
|
|
5
|
+
"extensions": ["anthropic.claude-code"]
|
|
6
|
+
}
|
|
7
|
+
}
|
|
3
8
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# ComfyUI Configuration
|
|
2
|
+
|
|
3
|
+
# ComfyUI models storage strategy:
|
|
4
|
+
#
|
|
5
|
+
# Option A (default) — named Docker volume (no host path needed):
|
|
6
|
+
# Leave COMFYUI_MODELS_HOST_PATH unset. Models persist in the Docker volume
|
|
7
|
+
# named "comfyui-models" and are shared between devcontainer and ComfyUI.
|
|
8
|
+
#
|
|
9
|
+
# Option B — bind mount to host directory (also accessible from host tools):
|
|
10
|
+
# Set COMFYUI_MODELS_HOST_PATH to an absolute host path.
|
|
11
|
+
# Docker creates the directory if it does not exist.
|
|
12
|
+
# Note: Docker Compose does not expand '~' in .env files; always use full absolute paths.
|
|
13
|
+
# macOS/Linux examples:
|
|
14
|
+
# COMFYUI_MODELS_HOST_PATH=/home/you/.cache/comfyui/models
|
|
15
|
+
# COMFYUI_MODELS_HOST_PATH=/home/you/ComfyUI/models
|
|
16
|
+
# Windows (Docker Desktop — use absolute path, no tilde):
|
|
17
|
+
# COMFYUI_MODELS_HOST_PATH=C:/Users/you/.cache/comfyui/models
|
|
18
|
+
#
|
|
19
|
+
# COMFYUI_MODELS_HOST_PATH=
|
|
20
|
+
|
|
21
|
+
# Where ComfyUI-generated images/videos are saved.
|
|
22
|
+
# Leave unset to use the named Docker volume "comfyui-output" (default),
|
|
23
|
+
# or set to an absolute host path to save outputs to the host filesystem.
|
|
24
|
+
# COMFYUI_OUTPUT_PATH=
|
|
25
|
+
|
|
26
|
+
# ComfyUI Docker image tag. Use 'latest-cuda' for NVIDIA GPU, 'latest-rocm' for AMD/ROCm, or 'latest-cpu' for CPU-only.
|
|
27
|
+
COMFYUI_VERSION=latest-cuda
|
|
28
|
+
|
|
29
|
+
# Host port for the ComfyUI web UI. Default: 8188.
|
|
30
|
+
COMFYUI_PORT=8188
|
|
31
|
+
|
|
32
|
+
# Extra CLI arguments passed to ComfyUI at startup.
|
|
33
|
+
# --listen 0.0.0.0 is required to accept connections from outside the container.
|
|
34
|
+
CLI_ARGS=--listen 0.0.0.0
|